关闭

solr的软提交和硬提交

标签: solr
2503人阅读 评论(0) 收藏 举报
分类:

在solr4.0中增加了软提交,加快了index速度,具体如下:


A commit operation makes index changes visible to new search requests. A hard commit also calls fsync on the index files to ensure they have been flushed to stable storage and no data loss will result from a power failure.

A soft commit is much faster since it only makes index changes visible and does not fsync index files or write a new index descriptor. If the JVM crashes or there is a loss of power, changes that occurred after the last hard commit will be lost. Search collections that have near-real-time requirements (that want index changes to be quickly visible to searches) will want to soft commit often but hard commit less frequently.

An optimize is like a hard commit except that it forces all of the index segments to be merged into a single segment first. Depending on the use cases, this operation should be performed infrequently (like nightly), if at all, since it is very expensive and involves reading and re-writing the entire index. Segments are normally merged over time anyway (as determined by the merge policy), and optimize just forces these merges to occur immediately.

Example:

  • <commit/>
    <optimize/>

Optional attributes for "commit" and "optimize"

  • waitFlush = "true" | "false" — default is true — block until index changes are flushed to disk <!> Solr1.4 At least in Solr 1.4 and later (perhaps earlier as well), this command has no affect. In <!> Solr4.0 it will be removed.

  • waitSearcher = "true" | "false" — default is true — block until a new searcher is opened and registered as the main query searcher, making the changes visible.

  • softCommit = "true" | "false" — default is false — perform a soft commit - this will refresh the 'view' of the index in a more performant manner, but without "on-disk" guarantees. <!> Solr4.0

Optional attributes for "commit"

  • expungeDeletes = "true" | "false" — default is false — merge segments with deletes away. <!> Solr1.4

Optional attributes for "optimize"

  • maxSegments = N — default is '1' — optimizes down to at most this number of segments <!> Solr1.3

Example of "commit" and "optimize" with optional attributes

<commit waitSearcher="false"/>
<commit waitSearcher="false" expungeDeletes="true"/>
<optimize waitSearcher="false"/>

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:256072次
    • 积分:4361
    • 等级:
    • 排名:第7176名
    • 原创:166篇
    • 转载:47篇
    • 译文:13篇
    • 评论:28条
    最新评论