rrs*_*rsk 3 lucene performance
这两个代码有什么区别?基于性能导向和面向文档
直接使用目录 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)));
Run Code Online (Sandbox Code Playgroud)
使用目录IndexReader然后使用该阅读器打开搜索器
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);
Run Code Online (Sandbox Code Playgroud)
IndexSearcher是一个围绕IndexReader的轻量级包装器.即使您使用IndexSearcher构造函数,IndexReader也会在引擎盖下打开,因此您可以从两个片段中获得相同的性能.
尽管它很方便,但通过目录直接打开IndexSearcher是一种不好的做法.此外,自Lucene 3.5以来,这个构造函数已被弃用.