簡體   English   中英

通過pyes和elasticsearch中的多個參數進行排序

[英]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.searchsort關鍵字進行更詳細的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM