python - 按pyes和elasticsearch中的多个参数排序

标签 python sorting 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 附加到排序参数

s = MatchAllQuery()
conn.search(query=Search(s), indexes=["test"], sort='_score,price:desc')

关于python - 按pyes和elasticsearch中的多个参数排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9084536/

相关文章:

java - 在多个线程中划分合并排序算法

ElasticSearch 根据不同类型的查询结果提高文档得分

elasticsearch - 如何调试Elasticsearch中不可用于搜索的文档

python - Scrapy Json 输出上的 Unicode

python - 我的 pipenv 工作不正常

python - Selenium - WebElement 对象没有属性 'sendKeys'

python - Django错误: 'myproject.wsgi.application' could not be loaded

c++ - c/c++ 中的可逆浮点排序

c# - 如何根据多列对DataTable进行排序?

php - cURL 已安装,但仍然出现此错误 Elasticsearch-PHP 需要 cURL 或自定义 HTTP 处理程序