实时搜索经常更新的Lucene索引 - 这是否实用?

时间:2013-09-26 19:34:40

标签: real-time lucene

我的查询涉及许多表上的许多连接,并且查询时间太长。我被要求尝试使用Lucene加快速度。我所做的是将查询导出到XML,并使用Java解析XML,使用Lucene索引XML,并创建API以在Java中查询此索引。这将查询时间缩短了6-10倍。

但是,除非专用VM或计算机不断查询数据库,导出数据并重新索引数据,否则使用API​​搜索Lucene索引的任何最终用户都将收到不是最新的数据。即使机器专门用于此目的,每次尝试搜索Lucene索引时,数据都不会是最新的。

我相信Solr的“delta进口”就是我所说的。我认为这对Solr来说是独一无二的,而不是Lucene。

Lucene有哪些选项可以索引某些频率会发生变化的数据,并允许用户实时搜索/查询?这对Lucene来说太过分了吗?

1 个答案:

答案 0 :(得分:1)

Solr碰巧是在lucene之上构建的搜索应用程序。因此,提供的任何索引和搜索功能都来自lucene。

Lucene支持近实时搜索 - http://wiki.apache.org/lucene-java/NearRealtimeSearch

对于您的索引问题,我会说这取决于您的应用程序在数据库和lucene之间同步数据。 Lucene可以以非常高的吞吐量进行索引。 http://people.apache.org/~mikemccand/lucenebench/indexing.html 因此,您的应用应足够智能,以便在数据库中进行更改并仅重新编制“delta”