Lucene的自动查询转换问题

时间:2011-08-25 11:53:04

标签: java lucene

最近我开始使用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(索引和查询)。

1 个答案:

答案 0 :(得分:2)

tostop word,这意味着它没有被编入索引,也没有被analyzers [包括StandardAnalyzer]搜索,因为它通常对搜索没用。如果您不希望它被“停止”,您将需要使用不同的分析器[用于索引和搜索],但它可能会有值得的结果。
您也可以从字段STOP_WORDS

中删除“至”一词

重要提示:您的索引分析器和搜索分析器应该保持一致,包括STOP_WORDS字段!