我正在使用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}},我不能为我的生活看到我的查询有什么问题......
答案 0 :(得分:0)
对于NOT_ANALYZED
字段,您应该在代码中创建TermQuery
或使用KeywordAnalyzer
,因为它需要在索引和查询中完全匹配术语(您的输入存储为例如,正如您已经注意到的那样,其他分析器处理输入并将Blu-ray
转换为Blu-ray
,其中索引为blu ray
。
如果您将字段更改为ANALYZED
并在编制索引时使用StandardAnalyzer,则您的查询也会以当前形式运行。