Lucene.Net查询解析器/索引错误?

时间:2010-11-19 14:37:23

标签: lucene.net

我们在产品中使用Lucene.Net(2.3.2.1)和NHibernate.Search,我发现了一个关于我的查询的非常奇怪的行为。 下面是我的两个测试的Debug输出,显示输入查询,在第二行,使用StandardAnalyser生成查询解析器生成的内容:

测试1(失败)

LastName:* AND IdentityType:A 
LastName:*

VS。测试2(工作)

LastName:* AND IdentityType:F 
+LastName:* +IdentityType:f

正如你所看到的唯一区别是“A”与“F” - 我玩过arround并且可以使用“AN”“AS”“AND”重现相同的问题 - 套管无关紧要,但所有其他条款都有效,我有AND关键字,所以我厌倦了“O”“或”,但这两个正在工作。

对于我来说,这看起来像是Query Parser的一个问题......但现在我也深入研究了我生成的索引,并且所有使用IndentityType字段中的“A”的实体都没有编入索引!

我会感谢任何有关该问题的帮助或提示。

亲切的问候, 克里斯

1 个答案:

答案 0 :(得分:2)

StandardAnalyzer有一个分析文本时使用的停用词列表。 “A”正在被删除。

尝试使用per field analyzer wrappera different analyzer作为IndentityType字段。

在一个更加行政的说明中,如果这个问题被标记为“Lucene”而不仅仅是“Lucene.net”,那么你可能会得到更快的答案......

祝你好运,