最近我开始使用Lucene。然而,几天后我发现我以字符串的形式提供的查询被Lucene转换为更一般的查询。
示例:
MY QUERY: "want to go" (including " as I'm searching whole phrases)
QUERY OBJECT created from my query (.toString): text:"want ? go"
NUMBER OF RESULTS for texts:
I want to go out today -> 1 result - correct
I want sdfto go out today -> 1 result - incorrect, should be 0
我想匹配execly短语“想要去”而不是“想要无论 go”。我注意到只有“to”和“a”的单词被替换为“?”。
我的问题是为什么Lucene正在改变我提供的查询,以及如何强迫Lucene提出我的查询(未更改)?
此外,我正在使用StandardAnayzer(索引和查询)。
答案 0 :(得分:2)
to
是stop word,这意味着它没有被编入索引,也没有被analyzers [包括StandardAnalyzer]搜索,因为它通常对搜索没用。如果您不希望它被“停止”,您将需要使用不同的分析器[用于索引和搜索],但它可能会有值得的结果。
您也可以从字段STOP_WORDS
重要提示:您的索引分析器和搜索分析器应该保持一致,包括STOP_WORDS字段!