2017-01-27 93 views
1

是否有可能在沒有計算分數的情況下運行dismax查詢?我只需要這個來做一些測試 - Solr搜索性能中分數計算的影響是什麼。沒有計算分數的Solr查詢

現在我有這樣的dismax查詢: { limit : 10, params:{ defType:"dismax", q:"${query}", q.op:"${operator}", qf:"${fields}", indent:"off" } } 是否有一些簡單的方法來實現我想要的?也許我應該使用過濾器查詢,但我怎麼能指定運營商,並使用查詢階段從用戶,因爲它是沒有任何處理fq?

回答

0

您可以introduce different query parser through localparams,所以像:

q=*:*&fq={!type=dismax qf='${fields}'}${query} 

..應該工作。如果這些不是您自己擴展的局部變量,則語法可能稍有不同。

+0

我不知道這應該如何幫助我。我的查詢工作正常,我需要的只是做相同的查詢,但沒有分數計算 - 只是返回一些匹配我的查詢的第一/隨機結果。我的查詢中的這些變量是JMeter變量。 – jgr

+0

「fq」子句不會影響分數 - 主查詢將匹配所有文檔,並且不會貢獻任何分數('*:*'),這會導致默認情況下以lucene索引順序返回文檔。如果要按隨機順序返回結果,可以[按隨機字段排序](http://stackoverflow.com/questions/25234102/solr-return-random-results-sort-by-random)。你也可以通過一個常數得分函數查詢來排序,作爲一個圍繞得分的分數(即'abs(0)'或類似的東西)。 – MatsLindh

+0

@jgr是否通過禁用評分來提高性能? – jagguli