当前位置: 首页 > 面试题库 >

在pyes和elasticsearch中按多个参数排序

魏澄邈
2023-03-14
问题内容

我可以将单个 sort 参数传递给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')


 类似资料:
  • 问题内容: 因为我能够使用像 请让我知道如何使用_version做同样的事情。默认情况下,字段_version不支持Fielddata。所以可能是我缺少了一些东西。是否有要查询版本的特定设置?请帮忙! 问题答案: 您不能这样做,通常也不必这样做。看到这个线程:https : //discuss.elastic.co/t/filter-by–version-and-show–version-in-e

  • 我有一个数组的值。我用一个条件对它进行排序,以保持某些项目在顶部。到目前为止,这是有效的。现在我想运行两个条件,例如,我有两个前缀要与数组中的每个项相匹配:tableprefix和第二个daryprefix。我已经实现的是将tableprefix保持在顶部。其余的项目必须按字母顺序排序。 我想要达到的目标: 1:数组项匹配表前缀在最顶部//已经实现 2:与secondaryprefix匹配的数组项

  • 问题内容: 我有ElasticSearch 5,我想根据字段值进行排序。想象一下,具有类别(例如流派)的文档可能具有科幻,戏剧,喜剧等值,并且在进行搜索时,我想对值进行排序,以便首先出现喜剧,然后是科幻和戏剧。然后,我当然会按照其他条件在小组内订购。有人可以指出我该怎么做吗? 问题答案: 使用手动排序进行Elasticsearch排序 在可以根据字段的特定值分配顺序的情况下,这是可能的。 我已经使

  • 问题内容: 我有看起来像这样的文档(以下是两个示例): 和 数组中子文档的格式将始终具有an 和a,但是这些子文档的数量将可变,每个子文档具有不同的值。 我想知道是否可以根据与特定值匹配的值之一对这种格式的文档进行排序。我真的很想能够做到这一点: 通过对文档进行排序下降,其中相关的。文档s 的最终排序为1234,6346。 通过对文档进行排序下降,其中相关的。文档s 的最终排序为6346,1234

  • 问题内容: 我的索引中有与- 相关的文档,并希望获取按孩子数排序的父母名单。有什么办法吗?我正在使用1.5.1 现在,通过使用功能,我可以轻松获得子文档的数量以及父查询的结果,但是似乎无法从脚本或搜索/评分功能访问值。有任何想法吗? 问题答案: 好吧,我终于找到了答案。感谢@doctorcal在#elasticsearch IRC 上的提示 正如我在这个问题提到的,我们可以使用每个家长让孩子的名单

  • 当我使用JAP接口JpaSpecificationExecutor时,我键入以下代码并抛出一个错误“至少提供了2个参数,但查询中只存在1个参数”,我不知道为什么。 我只想获得动态条件下的结果。异常消息如下: