2012-01-10 21 views
0

我將如何使用SolrNet執行更大/更小的查詢?SolrNet查詢幫助和一些調試選項

例子:

我的文檔有一個名爲「minimumDays」字段,我只希望返回文檔,其中那場小於或等於我傳遞給查詢的數量。

我目前有這個,但我不確定它是正確的。

int requestedDays = 3; 
var minimumNightsQuery = new SolrQueryByRange<int>("minimumDays", 0, requestedDays, true); 

我在正確的軌道上嗎?

這裏的第二部分是如果有一些方法可以更好地理解從SolrNet傳遞到Solr的查詢嗎?調試值或者我可以檢查例如「q」變量的東西。再次

感謝您的幫助

回答

1

您可以使用SolrQueryByRange你的問題的第一部分。你的代碼看起來不錯。調試您的查詢和結果可能會有幫助。我發現SolrNet做了一些奇怪的事情。 - http://code.google.com/p/solrnet/wiki/Facets#Arbitrary_facet_queries

對於第二部分,您可以攔截ISolrConnection並將它們放入您自己的中間。爲了一個良好的開始檢查:http://code.google.com/p/solrnet/source/browse/trunk/SampleSolrApp/LoggingConnection.cs?r=513 我有一個記錄查詢和結果,如果配置設置是它附加調試參數和日誌,結果也。它的偉大信息有...並且是獲得它的唯一途徑之一。

+0

「我發現SolrNet做了一些奇怪的事情」 - >有什麼奇怪的東西? – 2012-01-11 00:59:03

+0

您也可以從託管Solr的容器的日誌中看到正在傳遞給Solr的查詢。例如。如果您在Tomcat中運行Solr,則可以查看catalina日誌文件以查看發送到Solr的實際http請求,該請求將包含所有參數。 – 2012-01-11 12:55:47

+0

是的,但它不會顯示響應,也不能獲得調試信息。因此,如果您只需要查詢,那麼這是正確的,如果日誌記錄級別正確且查詢不是POST,則可以在日誌中找到它。由於我的大多數應用程序都有大量查詢,我通常會進行POST。 – CrazyDart 2012-01-11 16:41:44