Lucene:查询解析器未按预期工作

时间:2011-12-16 00:53:58

标签: lucene lucene.net

我正在使用Lucene.Net,但我确信它仍然适用于非网络风格。

这是我的疑问:

Collection:drwho AND Format:"Blu-ray"

这是查询解析器对它的作用:

{+Collection:drwho +Format:"blu ray"}

这显然不是我所追求的。这是我正在使用的代码:

Dim analyzer = New StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_29)
Dim qp = New QueryParser(Lucene.Net.Util.Version.LUCENE_29, Nothing, analyzer)
Dim q As Query = qp.Parse(query)

有关查询为何被封闭的任何想法?根据{{​​3}},我不能为我的生活看到我的查询有什么问题......

1 个答案:

答案 0 :(得分:0)

对于NOT_ANALYZED字段,您应该在代码中创建TermQuery或使用KeywordAnalyzer,因为它需要在索引和查询中完全匹配术语(您的输入存储为例如,正如您已经注意到的那样,其他分析器处理输入并将Blu-ray转换为Blu-ray,其中索引为blu ray

如果您将字段更改为ANALYZED并在编制索引时使用StandardAnalyzer,则您的查询也会以当前形式运行。