2011-11-18 61 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