3
這兩個代碼有什麼區別?基於性能取向和文檔使用目錄定向在lucene中通過IndexReader或IndexSearcher打開目錄
直接在IndexSearcher
Analyzer anal = new StandardAnalyzer(Version.LUCENE_30);
QueryParser parser = new QueryParser(Version.LUCENE_30, "", anal);
Query query = parser.parse(queryStr);
Searcher searcher = new IndexSearcher(NIOFSDirectory.open(new File(indexDir)));
使用讀取器
Analyzer anal = new StandardAnalyzer(Version.LUCENE_30);
QueryParser parser = new QueryParser(Version.LUCENE_30, "", anal);
Query query = parser.parse(queryStr);
IndexReader ir = IndexReader.open(NIOFSDirectory.open(new File(indexDir)), false);
IndexSearcher searcherNew = new IndexSearcher(ir);
非常感謝....非常有用的鏈接... – rrsk
爲了闡述一下,打開IndexReader是一個代價高昂的操作。在新的IndexSearcher中包裝IndexReader很便宜。因此,爲了優化,您需要認真管理IndexReader的重用,但不一定需要IndexSearchers。 – Jegschemesch