【发布时间】:2012-12-17 08:47:51
【问题描述】:
例如:
Lucene 文档中有一个列“description”。假设“description”的内容是 [hello foo bar]。我要查询[hello f],那么应该打文档,[hello ff]
或 [hello b] 不应被击中。
我使用编程方式创建Query,例如PrefixQuery、TermQuery被添加到BooleanQuery,但它们并没有按预期工作。使用StandardAnalyzer。
测试用例:
a): new PrefixQuery(new Term("description", "hello f")) -> 0 次命中
b): PhraseQuery query = new PhraseQuery();
query.add( new Term("description", "hello f*") ) -> 0 次命中
c): PhraseQuery query = new PhraseQuery();
query.add( new Term("description", "hello f") ) -> 0 次命中
有什么建议吗?谢谢!
【问题讨论】:
-
你试过什么?你能显示一些代码 sn-ps 吗?这将有助于我们更好地了解您的问题。
-
您是否尝试过使用 org.apache.lucene.queryParser.QueryParse 来解析查询字符串,例如“description: hello AND description: f*”?
-
@pabrantes "description: hello AND description: f*" 不是预期的,我想要 "hello" 后跟 "f"。
-
@TheDarkKnight 添加了三个案例。