Lucene Tag用C#搜索问题,逃避问题?

时间:2011-01-14 00:20:45

标签: lucene lucene.net

我正在使用lucene 2.9.2(.NET没有lucene 3)

“tag:C#”获取与“tag:c”相同的结果。如何让'C#'成为搜索词?我尝试将Field.Index.ANALYZED更改为Field.Index.NOT_ANALYZED,但这没有给我任何结果。

我假设我需要逃避每个标签,我该怎么做?

2 个答案:

答案 0 :(得分:4)

问题不在于查询,它正在使用的查询分析器从查询和(如果您使用相同的分析器进行插入 - 您应该使用的)和字段中删除“#”。

您需要找到一个能够保留这种特殊字符的分析器,或者编写一个自定义字符。

修改:查看KeywordAnalyzer - 它可能就是这样做的:

  

将整个流“标记”为单个标记。这对于邮政编码,ID和某些产品名称等数据非常有用。

答案 1 :(得分:1)

根据Lucene的Java Documentation 2.9.2'''不是特殊字符,需要在查询中转义。你能检查出来(即用Luke打开索引),“C#”值实际上是如何存储在索引中的吗?