Lucene实时索引?

Lucene实时索引?,lucene,indexing,real-time,Lucene,Indexing,Real Time,实现Lucene实时索引的最佳方法是什么?从索引编写器获取索引读取器 更新:看起来当前的方法是对象。试试Zoie Lucene wiki提供了一些信息: 看起来很有希望。它仍然是非常新的,但将本着精神提供分布式Solr索引。Lucene有一个称为近实时搜索的功能,以满足这一需求 它要求您的IndexReader与IndexWriter位于同一JVM中 您可以使用IndexWriter进行更改,然后使用IndexReader.open(writer)直接从写入程序打开一个读卡器,或者在旧的Luce

实现Lucene实时索引的最佳方法是什么?

从索引编写器获取索引读取器

更新:看起来当前的方法是对象。

试试Zoie


Lucene wiki提供了一些信息:
看起来很有希望。它仍然是非常新的,但将本着精神提供分布式Solr索引。

Lucene有一个称为近实时搜索的功能,以满足这一需求

它要求您的IndexReader与IndexWriter位于同一JVM中

您可以使用IndexWriter进行更改,然后使用IndexReader.open(writer)直接从写入程序打开一个读卡器,或者在旧的Lucene发行版上使用writer.getReader()。此调用通常会非常快(与上次打开读卡器后所做的更改成比例),因为它绕过了打开读卡器通常需要的昂贵提交。它能够在编写器中搜索未提交的更改


此读取器仍在从写入程序中搜索时间点快照,即从您打开快照时起的所有更改。

什么的实时索引?你能再解释一下你在寻找什么吗?在solr上断断续续地工作了2年,我不得不说:在实时索引方面,solr不是一个合适的平台。提交对于大型索引来说非常繁重——我听说大型安装几乎每小时只能管理一次提交。话虽如此,最近一个名为Lucandra的项目可能被证明是有希望的——我现在找不到任何文档,但我想我听到了一些关于无需提交的消息。您必须进一步解释,“实时”没有具体的含义:至少您需要指定可接受的延迟。软实时(比如,显示更新需要5-10秒)并不难,例如对于非大型索引。请不要写这样令人困惑的评论(关于Solr)。问题是关于lucene的。Solr在这里的断档(在提交时关闭indexwriter,而不是使用Lucene的NRT功能)是离题的。这对实时索引有什么帮助?允许搜索在提交点之前查找文档。在添加文档时,从写入程序获得的读卡器会不断更新;类型IndexWriter中的方法getReader()不可见。我刚刚更新了最新的Lucene API的答案。Zoie有承诺,但是我发现文档和代码示例严重缺乏。进一步使用Zoie,如果要索引的文档是成批的,那么索引速度很快,但是一次索引几个文档实际上非常慢。我个人发现raw-Lucene是一个更容易使用的API。