2011-06-20 68 views

回答

9

solr下沒有任何聚合函數可以用你從SQL考慮的方式。做到這一點最簡單的方法是有一個過程分爲兩個步驟:

  • 通過適當的查詢獲取最大價值懷着一種
  • 與MAX()函數

所以用它,是這樣的:

q=*:*&sort=view_count desc&rows=1&fl=view_count 

...與最大VIEW_COUNT,您錄製的地方得到一個項目,然後

q=whatever&bq=div(view_count, max(the_max_view_count, 1)) 

請注意,max()函數沒有執行聚合最大值;只需獲得您傳入的最大查看次數或1的最大值(以避免零除錯誤)。

如果您有多值字段(無法排序),您也可以使用StatsComponent來獲取最大值。無論哪種方式,你可能都希望這樣做一次,而不是每一個查詢(比如說,每天晚上在午夜或者你的數據集定下來的時候)。

+0

非常感謝您的回答......另外:我覺得很難找到任何好的文檔,在apache上只有上面的鏈接和關於功能查詢的一個主題......你可能會推薦任何東西其他? –

5

你可以只添加: &統計=真& stats.field = VIEW_COUNT 你會看到對指定的字段一個小統計。更多文檔here

+0

我們可以使用從統計得到的最大值和最小值進入函數查詢嗎? – Ankita