我正在使用 Lucence V3.1 和 Java 1.6。
我正在尝试编写代码(使用 java 和 lucene)来允许我进行多字段短语搜索。但是,我不希望该短语与字段中的值完全匹配。我想要的是检查该短语是否实际上是字段中值的子字符串。我尝试了以下方法,但还没有成功:
IndexReader reader = IndexReader.Open("<lucene dir>");
Searcher searcher = new IndexSearcher(reader);
BooleanQuery booleanQuery = new BooleanQuery();
Query query1 = new TermQuery(new Term("<field-name>", "<text>"));
booleanQuery.add(query1, BooleanClause.Occur.SHOULD);
Hits hits = searcher.Search(booleanQuery);
最佳答案
只使用引号?就像“这是子字符串”。这肯定适用于 lucene QueryParser
如果要在查询
中使用,请使用PhraseQuery
。另请参阅http://lucene.apache.org/core/old_versioned_docs/versions/3_1_0/api/core/org/apache/lucene/search/PhraseQuery.html
关于Java/Lucene 在多个字段中搜索子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13933241/