Lucene标记搜索问题与C#,转义问题?

Lucene标记搜索问题与C#,转义问题?,lucene,lucene.net,Lucene,Lucene.net,我正在使用lucene 2.9.2(.NET没有lucene 3) “tag:C#”得到的结果与“tag:C”相同。如何允许“C#”作为搜索词?我尝试将Field.Index.analysis更改为Field.Index.NOT_analysis,但没有结果 我假设我需要转义每个标记,我该如何做呢?问题不在于查询,而在于您正在使用的查询分析器正在从查询和(如果您使用相同的分析器进行插入-您应该是)以及字段中删除“#” 您需要找到一个分析器,它可以保留这样的特殊字符,或者编写一个自定义字符 编辑:

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

“tag:C#”得到的结果与“tag:C”相同。如何允许“C#”作为搜索词?我尝试将Field.Index.analysis更改为Field.Index.NOT_analysis,但没有结果


我假设我需要转义每个标记,我该如何做呢?

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

您需要找到一个分析器,它可以保留这样的特殊字符,或者编写一个自定义字符

编辑:签出-它可能只会起到以下作用:

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


根据for Lucene 2.9.2的定义,“#”不是特殊字符,需要在查询中转义。您可以检查(即通过打开索引)值“C#”在索引中的实际存储方式吗?

我知道了,我使用的是WhiteSpaceAnalyzergah,这台机器上没有安装java。我确信我的一个虚拟机是这样的。我稍后再查。我从来不知道卢克,+1