我希望在一个索引上使用Lucene进行搜索。该索引经常发生变化,因此我需要同时进行搜索和索引的操作。这是一个运行在Tomcat上的Web应用程序。我想使用RAMDeirectory来增加搜索速度,但我不知道如何做到!
misc
Lucene包中的NRTManager
提供了同时搜索和索引的能力。
TrackingIndexWriter writer; // your writer
SearcherFactory factory = new SearcherFactory();
NRTManager mgr = new NRTManager(writer, factory);
请查看NRTManager方法以获取更多信息。
IndexWriter writer; // create an IndexWriter here
Document doc = null; // create a document here
writer.addDocument(doc); // update a document
IndexReader reader = writer.getReader(); // get a reader with the new doc
Document addedDoc = reader.document(0);
你需要做的是:
这取决于需求,你需要什么样的延迟。