繁体   English   中英

如何使用Lucene的MultiFieldQueryParser?

[英]How to use MultiFieldQueryParser from Lucene?

我正在使用Version.Lucene_29 使用普通的字符串查询方法,我可以执行以下操作:

Directory directory = new FSDirectory(...);
//Start Lucene retrieval.
IndexSearcher iSearch = new IndexSearcher(directory, true);
Analyzer analyzer = new WhitespaceAnalyzer();
QueryParser parser = new QueryParser(Version.LUCENE_29, "content", analyzer);
String str = 'filename:testfile.txt AND filetext:"Singapore food"'
Query query = parser.parse(str);
ScoreDoc[] hits = iSearch.search(query, 1000).scoreDocs;

如何在Lucene中使用MultiFieldQueryParser触发查询,类似于字符串查询方法?

MultiFieldQueryParser multiParser = new MultiFieldQueryParser(
    Version.LUCENE_29, new String[] {"content", "ne"}, analyzer);
str = ???
Query = ????
ScoreDoc[] hits = iSearch.search(query, 1000).scoreDocs;

MultiFieldQueryParser允许您使用相同的分析器在多个文件中搜索“WORD”。

例如

 Query query = MultiFieldQueryParser.parse("development",
        new String[]{"title", "subject"},
        new SimpleAnalyzer());

它将在Field中寻找单词开发:“title”和Field:“subject”

MultiFieldQueryParser是一个QueryParser ,在这种情况下, MultiFieldQueryParser将两个查询创建为一个BooleanClause 所以它也支持filename:testfile.txt和filetext:“新加坡食品”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM