2010-03-26 109 views
8

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

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

编辑:

4/1/2010上午11:08 PST

我认为这是在该标记者对Lucene的2.9.1一个错误,它可能是那里。 加载了卢克和尝试搜索“BB_HHH_FFFF5_SSSS”的时候,有一个数字,将返回下列标记:

“BB hhh_ffff5_ssss”

一些测试后,我发现,这是因为号码。如果我输入

“BB_HHH_FFFF_SSSS”,我得到

“BB HHH FFFF SSSS”

在这一点上,我倾向于一个标记错误,除非数量的存在应该有这个行为,但我不明白为什么。

任何人都可以证实这一点吗?

回答

1

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

顺便提一句,您可以通过使用KeywordAnalyzer来匹配MY_VALUE。

+0

不,我没有使用标准的分析仪这就是为什么这是奇怪的索引。 – Matt 2010-03-26 21:29:37

+3

如果您使用标准分析器进行索引,那么您的索引将包含“我的”和“值”作为两个不同的标记。尝试搜索“我的价值”(包括引号),你可能会得到结果。 – Thomas 2010-03-28 11:18:26

+0

我会仔细检查一下您使用哪个分析器进行索引。如果您使用StandardAnalyzer进行索引编制,则不可能将MY_VALUE作为术语,因为StandardAnalyzer始终以下划线分隔。 – bajafresh4life 2010-03-30 01:27:18

1

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

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

我觉得在用卢克看球场时会出现一些混乱。存储的值是而不是查询使用了什么,您需要的是这些条款。我怀疑,当你查看为你的领域存储的术语时,他们将是“我的”和“价值”。

希望这有助于