2
A
回答
2
我知道有兩種方法可以嘗試解決這個使用Solr的。第一個是使用QueryElevationComponent。這使您可以在索引時間定義最佳結果。正如文檔中所建議的那樣,這對於在搜索結果頂部放置贊助結果或流行文檔非常有用。潛在的缺點是,您必須能夠在索引時間而不是在查詢時識別這些文檔。
另一種方法是在查詢時使用bq parameter提高所需的文檔。爲了提升文檔435,你應該這樣做:
...&bq=id:435^10
不幸的是,這些方法都不能給你絕對控制結果的順序。
如果您不介意在執行搜索後處理結果,由Riking提供的解決方案肯定會完成這項工作。您可以考慮的另一種方法是在您的Solr模式中添加一個字段,用於定義顯示順序或優先級。然後,您可以對該字段進行排序以獲得所需的排序順序。
0
調用內建的sort()函數,然後將所需的元素移到最前面。
僞代碼,如果你沒有一個內置的方法將其轉移到前面:
tmp = desired;
int dIndex = array.indexOf(desired);
for(i=dIndex-1; i >= 0; i--)
{
array[i+1] = array[i]
}
-1
如果您使用標準查詢(而不是dismax)添加「OR id:2^1000」給您查詢。像這樣:
q=(text:lalala AND author:Bob) OR id:2^1000
將在結果頂部放置ID = 2的文檔。
2
如果您使用的是Solr 3.1或更高版本,則可以使用sort by a function query。 map函數對此很有用。
sort=map(field_name,5,5,0) asc
在上面,field_name
是要排序的字段的名稱,5
是價值要推到前面,0
必須用一些數字,你知道是不是所有被替換其他數字。
相關問題
- 1. 排序在SOLR
- 2. 排序第一
- 3. SOLR方面排序
- 4. XSLT:排序像SOLR
- 5. 我想在ArrayList中<File>排序....
- 6. Solr的 - 複雜的排序
- 7. Solr中的自定義分數排序不會一致排序
- 8. 我想切換類所選列的第一個孩子在一排
- 9. Solr的排序款Hybris
- 10. Solr的排序由結果
- 11. Solr的排序按相關
- 12. Apache SOLR排序順序
- 13. 我想加載第二次DIV第一和第一格第二
- 14. 我想點擊排序後的表格
- 15. 用java排序我的想法
- 16. 我想的特定列進行排序
- 17. 我想要一個有效的排序算法來排序數組
- 18. 我想從第一個SQL表中的數據,在第二個
- 19. MySQL按第一列排序,按第二列排序
- 20. CakePHP的分頁降序排序第一
- 21. 排序由第一字符
- 22. 排序返回第一頁
- 23. 第一列排序jqgrid
- 24. 無法直接編輯HTML,想按表排列第一列字母排序
- 25. 我有一個排序圖降序排列。我想將訂單更改爲升序。這是我的代碼:
- 26. 我想排序一個鏈接列表降序
- 27. 在Solr 4中按距離排序結果的理想方法是什麼?
- 28. 我的程序沒有按照我想要的排序
- 29. 排序() - 想一個很好的解釋
- 30. 我想選擇另一個第一次啓動應用程序