[英]Sorting by multiple params in pyes and elasticsearch
我可以將單個排序參數傳遞給pyes中的搜索查詢,如下所示:
s = MatchAllQuery()
conn.search(query=Search(s), indexes=["test"], sort='_score')
但我需要傳遞一個額外的參數來對具有相同分數的文檔進行排序,如下所示:
{
"sort": [
"_score",
{
"extra_param": {
"order": "asc"
}
}
],
"query": {
"term": {
"match_all": {}
}
}
}
我怎么能在pyes中做到這一點?
謝謝
如果您希望結果集中具有相同分數的結果按價格排序,請將價格附加到排序字符串:
s = MatchAllQuery()
conn.search(query=Search(s), indexes=["test"], sort='_score,price')
默認情況下,排序順序為升序。 要將排序順序傳遞:asc或:desc到sort參數
s = MatchAllQuery()
conn.search(query=Search(s), indexes=["test"], sort='_score,price:desc')
如果你想通過es.search
的sort
關鍵字進行更詳細的sort
,你可以將搜索dict傳遞給es.Search
構造函數。
s = Search({'term': {'foo.monkey': 'george'}},
sort=[{'_geo_distance': {'unit': 'mi',
'order': 'desc',
'monkey.location': '81,20'}}])
conn.search(s)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.