分享

lucene中发生实时索引的措施.

 CevenCheng 2012-05-13

lucene中发生实时索引的措施.

 (2011-07-23 01:14:12)
标签: 

杂谈

过去看到网上一些措施都是说先发生内存索引,在定期将内存索引保留到磁盘,来告终实时的索引的功能。Lucene in action中也没提如何发生实时索引的措施,不过lucene3.0.3中加入了实时索引的API,能够大大简化发生实时索引的工作量,本人也是在偶尔翻阅lucene 的java doc中觉察的。

新的接口为IndexWriter.getReader() ,归来一个IndexReader对象,该对象能够cover所有IndexWriter曾经commit和未commitlo.rialogo.com的垄断,因而在IndexWriter 将索引commit到磁盘之前,就能够索引到新加入的document.

不过归来的IndexReader 无法获得索引是否曾经改变的消息,穿越IndexReader().getVersion() 获得的版本号每次都是一样的,无法判别索引是否曾经更新.

而穿越IndexWriter.getReader()归来的IndexReader必需reopen能力获得到新的更新,为了避免每次查询都reopen,能够设置一个update符号,索引改变时update 设置为truedm.dmtyu.com, reopen后设置为false, 这么能够保证才索引更新时才去reopen.

在多线程查询的情形下,对IndexReader的管教,能够参看lucene in action 10.2.2 Using threads for searching。不幸的是,随着工夫的挪动,客户代码可能会改换归来的Dimension对象的值,这个时候,追寻讹谬的起源是件枯燥且费时的事情,尤其是在多线程环境中。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多