2010-09-14 95 views
1

我有使用SolrNet一個簡單的查詢到Solr的實例,但由於某些原因,比分始終是0SolrNet - 得分始終爲0

我已經驗證:

  • 有場[ SolrField(「Score」)] public double Score {get;組; }在我的映射類中

  • 已經檢查過被搜索的字段是字符串而不是文本。

還有什麼可能是錯的?請幫助

更新:

var results = solr.Query(q, 
            new QueryOptions 
            { 
             OrderBy = new[] { new SolrNet.SortOrder("DateSubmitted", Order.ASC) }, 
             Fields = new[] { "score" } 

            } 
           ); 

回答

1

確保得分是在字段列表中,當你這樣做,因爲比分默認情況下不返回的請求(FL參數)。

+0

由於是thsi建設(見上文)是否足夠?我嘗試過,但仍然沒有得分。 – Mikos 2010-09-14 14:06:46

+0

如果使用fl參數設置得分來正確返回文檔,那麼我首先會直接檢查Solr控制檯。然後我會檢查param是否通過http請求分析器(tcpmon或fiddler)正確發送到Solr。 – 2010-09-14 14:30:44

+0

謝謝。會嘗試你的建議。 – Mikos 2010-09-14 17:58:56

7

就像帕斯卡爾指出的那樣,默認情況下得分不會被返回,所以你必須做fl=*,score to get everything and the score。在SolrNet中,這轉換爲Fields = new[] {"*","score"}

而且映射是大小寫敏感的,所以你會希望[SolrField("score")]代替[SolrField("Score")]

+0

使用** SolrNet **我們如何獲得'max()',以便我們可以計算每個返回文檔的相關百分比? – balexandre 2013-02-14 20:53:34

+0

@balexandre發佈在https://groups.google.com/forum/#!forum/solrnet – 2013-02-14 20:57:13

+0

我可以看到你是一個主用戶:) thxs,會做! – balexandre 2013-02-14 20:59:24