我试图找出在多次运行应用程序时只读一次lucene索引的正确方法,我该如何在java中做到这一点?
因为索引数据不会改变所以每次读取它们都没有必要。有人能解释一下它只读一次的逻辑吗?谢谢
更新:
public List initTableObject() throws IOException {
Directory fSDirectory = FSDirectory.open(new File(INDEX_NAME));
List<String>termList = new ArrayList<String>();
RAMDirectory directory = new RAMDirectory(fSDirectory);
IndexReader iReader = IndexReader.open(fSDirectory);
FilterIndexReader fReader = new FilterIndexReader(iReader);
// int numOfDocs = fReader.numDocs();
TermEnum terms = fReader.terms();
while (terms.next()){
Term term = terms.term();
String termText = term.text();
termList.add(termText);
}
iReader.close();
return termList;
}
我是lucene的新手,所以这就是我到目前为止我还没有RAMDirectory。
此方法检索列表,因为我需要此索引列表与我拥有的某些文件进行比较。如何将此列表存储到RAM中,以便在我的应用程序的其他部分中使用它进行比较?