当我使用Luke使用标准分析器搜索我的Lucene索引时,我可以看到我搜索的字段包含MY_VALUE形式的值。 当我搜索字段:“MY_VALUE”但是,查询被解析为字段:“my value”
是否有一种简单的方法可以转义下划线(_)字符,以便搜索它?
修改
4/1/2010太平洋标准时间上午11:08
我认为Lucene 2.9.1的令牌化程序中存在一个错误,之前可能存在错误。 加载Luke并尝试搜索“BB_HHH_FFFF5_SSSS”,当有数字时,返回以下标记:
“bb hhh_ffff5_ssss”
经过一些测试,我发现这是因为数字。如果我输入
“BB_HHH_FFFF_SSSS”,我明白了
“bb hhh ffff ssss”
此时,我倾向于使用tokenizer bug,除非该数字的存在应该具有此行为,但我不明白为什么。
有人可以证实吗?
答案 0 :(得分:2)
您看起来并不像使用StandardAnalyzer来索引该字段。在Luke中,您需要选择用于索引该字段的分析器,以便正确匹配MY_VALUE。
顺便说一句,您可以使用KeywordAnalyzer匹配MY_VALUE。
答案 1 :(得分:1)
我认为您无法在此用例中使用标准分析器。
判断我认为你的要求是什么,关键字分析器应该可以很好地工作(整个领域变成单个术语)。
我认为当用卢克看场时会出现一些混乱。存储的值不查询使用的是什么,您需要的是术语。我怀疑当你查看为你的领域存储的术语时,它们将是“我的”和“价值”。
希望这有帮助,