Lucene搜索和下划线

问题描述 投票:8回答:2

当我使用Luke使用标准分析器搜索我的Lucene索引时,我可以看到我搜索的字段包含MY_VALUE形式的值。当我搜索字段:“MY_VALUE”但是,查询被解析为字段:“my value”

是否有一种简单的方法来转义下划线(_)字符,以便它搜索它?

编辑:

4/1/2010太平洋标准时间上午11:08

我认为Lucene 2.9.1的令牌化程序中存在一个错误,之前可能存在错误。加载Luke并尝试搜索“BB_HHH_FFFF5_SSSS”,当有数字时,返回以下标记:

B. Hvhvkhs

经过一些测试,我发现这是因为数字。如果我输入

“BB_HHH_FFFF_SSSS”,我明白了

“B hah ff ss”

此时,我倾向于使用tokenizer bug,除非该数字的存在应该具有此行为,但我不明白为什么。

谁能证实这一点?

lucene lucene.net
2个回答
2
投票

它看起来不像您使用StandardAnalyzer索引该字段。在Luke中,您需要选择用于索引该字段的分析器,以便正确匹配MY_VALUE。

顺便说一句,您可以使用KeywordAnalyzer匹配MY_VALUE。


1
投票

我认为你不能在这个用例中使用标准分析仪。

判断我认为您的要求是什么,关键字分析器应该可以很好地工作(整个领域变成单个术语)。

我认为当用卢克看场时会产生一些混乱。存储的值不是查询使用的值,您需要的是术语。我怀疑当你查看为你的领域存储的术语时,它们将是“我的”和“价值”。

希望这可以帮助,

© www.soinside.com 2019 - 2024. All rights reserved.