java Lucene的近实时搜索实现
这是我在lucene中搜索东西的代码
ScoreDoc[] hits = null;
StandardAnalyzer analyzer = new StandardAnalyzer(Version.LUCENE_35);
QueryParser q = new QueryParser(Version.LUCENE_35, "content", analyzer);
Query query = q.parse(searchString);
IndexReader reader = IndexReader.open(IndexWriterSingleton.getIndexWriter(), true);
IndexSearcher is = new IndexSearcher(reader);
// IndexSearcher is = new IndexSearcher(index, true);
TopScoreDocCollector collector = TopScoreDocCollector.create(100, true);
is.search(query, collector);
hits = collector.topDocs().scoreDocs;
我的问题是:这一行(仅这一行)是否使搜索接近实时
IndexReader reader = IndexReader.open(IndexWriterSingleton.getIndexWriter(), true);
我维护一个IndexWriter(不在任何地方关闭它)
# 1 楼答案
不要让你的生活变得困难。使用NRTManager类来处理所有这些