当我使用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,除非该数字的存在应该具有此行为,但我不明白为什么。
谁能证实这一点?
它看起来不像您使用StandardAnalyzer索引该字段。在Luke中,您需要选择用于索引该字段的分析器,以便正确匹配MY_VALUE。
顺便说一句,您可以使用KeywordAnalyzer匹配MY_VALUE。
我认为你不能在这个用例中使用标准分析仪。
判断我认为您的要求是什么,关键字分析器应该可以很好地工作(整个领域变成单个术语)。
我认为当用卢克看场时会产生一些混乱。存储的值不是查询使用的值,您需要的是术语。我怀疑当你查看为你的领域存储的术语时,它们将是“我的”和“价值”。
希望这可以帮助,