2011-11-18 58 views
1

我正在使用SolrQueryByField来测试Solr在搜索特定字段时的性能。然而,SolrQueryByField似乎适用于多字查询引用。最终的url有点像.. select?q =(prodname:“冠军+肌酸”)...这个尝试做一个完全匹配。有没有办法在SolrQueryByField中禁用引号,以便它转换成.. select?q =(prodname:champion + creatine)。谢谢!SolrNet - 如何禁用SolrQueryByField中的引号?

回答

3

你可以做以下的SolrNet:

var q = new SolrQuery("prodname:champion") && new SolrQuery("prodname:creatine"); 
var response = solr.Query(q); 

将产生:

select?q=prodname:champion+prodname:creatine 

这应该完成你想要的。如果没有,请参考SolrNet - Querying页面以获取更多选项。此外,我相信你看到你的问题中描述的行为的原因是因为SolrQueryByField执行特殊字符转义。

编辑:对评论中提到的SolrQueryByField使用修复。 (请确保您有一个版本支持此SolrNet的...

var q = new SolrQueryByField("prodname", "champion creatine") { Quoted = false }; 
+0

感谢您的答复。看起来这是一个已知的问题,并没有为它的修复http://code.google.com/p/solrnet/issues/detail?id = 157我只是不确定如何在使用SolrQuerybyfield时使用该选项删除引号。 – Raza

+0

更新了如何使用SolrQueryByField而不用引号 –

+0

我正在使用SolrNet 0.4.0.1001。似乎支持Quotes属性,你可以告诉我我应该使用哪个版本吗? – Raza