Lucene搜索和下划线

Mat*_*att 8 lucene lucene.net

当我使用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,除非该数字的存在应该具有此行为,但我不明白为什么.

谁能证实这一点?

baj*_*ife 3

您似乎没有使用 StandardAnalyzer 来索引该字段。在 Luke 中,您需要选择用于索引该字段的分析器,以便正确匹配 MY_VALUE。

顺便说一句,您也许可以使用关键字分析器来匹配 MY_VALUE。

  • 如果您使用标准分析器建立索引,那么您的索引将包含“my”和“value”作为两个不同的标记。尝试搜索“我的价值”(包括引号),您可能会得到结果。 (3认同)