2012-07-29 156 views
0

这是我的代码在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; 

我的问题是:这是否行(JUST此行)使得近实时搜索?

IndexReader reader = IndexReader.open(IndexWriterSingleton.getIndexWriter(), true); 

我维护一个IndexWriter(不关闭它在任何地方)。

回答

1

不会让你的生活困难。使用NRTManager类来处理所有这些。