solr之commit和softcommit
来源:互联网 发布:sql delete多个表 编辑:程序博客网 时间:2024/05/18 13:27
在solrconfig.xml里有两个配置项,autoCommit和autoSoftCommit,他们是干什么的呢?他们是solr提交文档的两种方式。
1. commit
一般提交又或者叫硬提交(hard commit), 使用这种提交会把文档立即持久化到磁盘,并可以让你能立马查询到它,因为它会开启一个新的searcher,但是它缺点很明显,就是很耗性能,并会阻塞到提交任务完成,使用它是非常昂贵的操作。
在提交的文档的url里使用commit=true即可使用。
2. softcommit
软提交,这种提交不会立即把数据写到磁盘,但它可以使你能立即查询到它,就是所谓的支持near real-time (NRT) searching近实时查询,而且这样的操作不昂贵。
通过对这两种提交方式的了解,我们知道了软硬提交,除了在客户端显示设置这两种提交,我们可以在solrconfig.xml里配置这两种提交方式自动完成。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
在autoCommit里设置了文档每隔30000ms就去做一次硬提交,openSearcher属性设置是否每一次硬提交都开启一个新的Searcher,由于开启Searcher也是昂贵的操作,推荐不要开启,可以通过配合下面的autoSoftCommit来实现快速检索到提交的问题。
autoSoftCommit里设置了5000ms做一个软提交。
这样我们在客户端就可以不维护提交的方式和时间了,solr会自动来做这些事情。
solr hard commit做的事情
1、生成一个新的tlog文件,删除旧的tlog。
2、把内存中的索引文件fsync到磁盘,并创建一个index descriptor。这里比较耗费机器资源。
这样即使jvm崩溃或者宕机,也不影响这部分索引。
3、使得索引在searcher中可见。但是也需要重新打开searcher才行。
soft commit做的事情
1、把内存文件fsync到磁盘,但不创建index descriptor。
也就是说原索引和现在的索引还互不感知,所以如果jvm崩溃,那这部分索引就没了。
2、可以重新打开searcher,使得新的索引可以被查找到。
3.soft commit后jvm宕掉, 索引内容不会丢失,这部分内容保存在tlog文件夹下的日志文件里
SoftCommit Tips:
1.Solr的softCommit是Write-ahead Logging的,所以不必担心softCommit的数据会丢失。Log数据就在$solrHome/collection/data/tlog/下。
2.solr关闭时会进行一次hard commit,所以不必担心关闭(或Kill process)时softCommit数据会丢失。当然kill -9除外~
- solr之commit和softcommit
- solr之commit和softcommit
- solr中commit和opimize理解
- solr 的commit, soft commit等
- Solr通过配置自动Commit
- Solr 中的commit与optimize
- Solr 配置文件之core.properties、solr.xml和Config Sets
- Solr 配置文件之core.properties、solr.xml和Config Sets
- 如何使SOLR系统自动AUTO COMMIT?
- solr基础之shard和zookeeper
- solr之 document和FieldType等
- 全文检索之Lucene和Solr
- 2.SQL Server DML触发器之COMMIT和ROLLBACK TRANSACTION
- Fragment系列之Transactions.commit和Activity的状态
- [Git]第四回 git之add和commit
- git总结之3: git log 和git commit
- Oracle之form commit
- docker命令之commit
- python发送邮件
- 一个web应用的诞生(4)
- Find Largest Value in Each Tree Row宽度优先遍历算法详解
- 汇编程序:简单的菜单
- Android高手进阶教程(三)之----Android 中自定义View的应用.
- solr之commit和softcommit
- 一个web应用的诞生(3)
- COMPUTER NETWORK
- 【C++】LeetCode 132. Palindrome Partitioning II
- python开发技能表格
- 犀牛软件rhinoceros的参数化设计插件草蜢grasshopper的安装
- Java基础-线程的通信
- FILE结构体(文件描述符及缓冲区)
- CTreeCtrl使用演示