Java / Lucene搜索子字符串的多个字段

时间:2012-12-18 12:40:22

标签: java search lucene

我正在使用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);

2 个答案:

答案 0 :(得分:2)

只需使用报价?就像“这是子串”。这肯定适用于lucene QueryParser

如果要在Query中使用PhraseQuery。另请参阅http://lucene.apache.org/core/old_versioned_docs/versions/3_1_0/api/core/org/apache/lucene/search/PhraseQuery.html

答案 1 :(得分:1)

索引时使用的分析器??

如果您使用标准分析器,则不应该遇到这样的问题......

PS:始终使用相同的分析器进行索引和搜索