2013-02-05 39 views
1

在我的應用程序中,每個文檔由四個文本字段組成,即標題,關鍵字,摘要和文本。我知道我可以用「fq = title關鍵字摘要文本」來使用dismax查詢來讓Solr在四個字段中執行dismax查詢。四個字段中的最大相關性分數將被用作最終分數。此外,在fl參數中添加分數,我可以得到每個文檔對查詢的相關性分數。對於Solr dismax查詢,我如何獲得每個現場得分?

然而,問題是如何知道四個領域的每一個的相關性得分?這對我來說非常重要,因爲我需要轉儲這些分數來調整字段權重。我想要的唯一方法是打開debugQuery選項並提取返回的XML來解析分數。但我認爲這太複雜了。有沒有人有我的問題輕鬆解決?

回答

1

沒有簡單的解決方案,您需要將& debugQuery = true添加到您的查詢中,然後解析結果中的「explain」部分。 但請注意,它也可以作爲數組返回,以便於進行程序化操作。 這是通過& debug.explain.structured = true實現的,這可以大大減輕你的生活。