如何在弹性搜索中对多个索引的结果进行排序和限制

2024-03-09

我有 4 个索引,分别称为index1、idndex2、index3 和index4

假设结果集中有数百个结果 现在我只想

top 10 rows/result from index1
+
top 10 rows/result from index2
+
top 10 rows/result from index3
+
top 10 rows/result from index4

您可以使用Elasticsearch的Multi-Search API。 不要在 url 中提供任何索引名称,而是在 url 中使用 _msearch 关键字,如下所示:

GET _msearch
{"index" : "index1"}
{"query" : {}, "from" : 0, "size" : 10}
{"index" : "index2"}
{"query" : {}, "from" : 0, "size" : 10}

参考 -https://www.elastic.co/guide/en/elasticsearch/reference/current/search-multi-search.html https://www.elastic.co/guide/en/elasticsearch/reference/current/search-multi-search.html

或者,您还可以跨多个索引执行单个查询,然后使用按索引名称的聚合对结果进行分组;将 top_hits 大小指定为 10 以获取每个索引的前 10 个命中。

GET index1,index2,index3/_search
{
  "size": 0,
  "query": { ... },
  "aggs": {
    "indexes": {
      "terms": {
        "field": "_index",
        "size": 50
      },
      "aggs": {
        "hits": {
          "top_hits": {
            "size": 10
          }
        }
      }
    }
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在弹性搜索中对多个索引的结果进行排序和限制 的相关文章

  • 删除Elasticsearch中类型的文档

    我想使用 HTTP REST api 删除 Elasticsearch 中某一类型中索引的所有文档 但我不想删除该类型的映射 如何在 URL 中构建查询来执行此操作 执行命令前 索引 映射状态 截图取自elasticsearch头插件网络界
  • 范围过滤器不适用于“gt”运算符,但适用于“lt”

    我正在使用弹性搜索来索引我的文档 并希望根据特定属性过滤文档 这是我的代码 filter push range audience ethnicity asian gt 50 它不适用于 gt 运算符 发回不一致的结果 但适用于 lt 运算符
  • 如何用Python为ElasticSearch创建只读客户端?

    我想从 ES 读取数据 但不想意外向其中写入数据 无索引操作 这只是一种安全措施 以便以后修改查询函数的其他人不允许插入数据 当你说你想要只读客户端时 客户端强调您系统中的同一集群可能有其他客户端 然后阻止整个索引为只读将会阻止所有客户端的
  • 如何在elasticsearch中使用冒号搜索模式?

    我在 Elasticsearch 中有一个字段 其值为 ft 05 08 2015 13 01 27 358 cgn 4189 当我想使用查询字符串 cgn 4189 进行搜索时 我没有结果 我尝试像 cgn 4189 一样转义冒号 但有语
  • 使elasticsearch中的所有对象嵌套对象

    是否可以让elasticsearch中的所有嵌套对象自动映射到默认嵌套的类型 而不是对象 是的 您可以使用以下方法来做到这一点动态模板 https www elastic co guide en elasticsearch referenc
  • 将 Elasticsearch 结果导出到 CSV 文件

    我正在尝试将使用以下查询找到的结果导出到桌面上的 CSV 中 这是我第一次使用 Elasticsearch 和 cURL 所以我对如何做到这一点感到困惑 from elasticsearch import Elasticsearch es
  • Elastic Search 5.x 嵌套多个查询 C#

    我将 C 与这些 nuget 包一起使用
  • Elasticsearch 崩溃后无法恢复

    磁盘空间不足 导致 Elasticsearch 分片崩溃 三个节点现在为红色 两个节点已恢复 它们的状态为黄色 ES 的 CPU 利用率为 150 内存利用率很高 正在尝试恢复它们 但似乎存在一些版本匹配冲突 我清理了磁盘空间并删除了分片的
  • 分面搜索的后过滤器和全局聚合之间有什么区别?

    搜索界面中的一个常见问题是您想要返回结果的选择 但可能想返回有关所有文档的信息 例如 我想查看所有红色衬衫 但想知道什么 其他颜色可供选择 这有时被称为 多面结果 或者 多面导航 这Elasticsearch 参考中的示例 https ww
  • 为什么我在elasticsearch中需要“store”:“yes”?

    我真的不明白为什么核心类型链接 http www elasticsearch org guide reference mapping core types 它在属性描述中说 例如 对于数字 store 设置为 yes 将实际字段存储在索引中
  • Logstash删除类型并保留_type

    我有一个logstash 客户端和服务器 客户端将带有logstash的udp输出的日志文件发送到服务器 服务器也运行logstash来获取这些日志 在服务器上 我有一个 json 过滤器 它会在实际日志的字段中提取 json 格式的消息
  • 弹性搜索模糊匹配,精确匹配首先显示

    我想在查询中使用模糊匹配 但精确匹配显示在结果的顶部 我已经尝试过以下方法 return this gt client gt search array index gt self INDEX type gt self TYPE body g
  • Elasticsearch:如何查询连接数?

    如何询问我的 Elasticsearch 服务器现在有多少个连接 这与插座数量相同吗 我也不知道如何获得这些数字 这与客户端的数量不同 对吧 因为每个客户端可能打开多个连接 找不到任何相关信息 但我确实发现您可以在 Elasticsearc
  • 在 Elastic 搜索中加载示例数据集时出错

    您好 我正在尝试加载示例数据集参考弹性搜索文档 https www elastic co guide en elasticsearch reference current exploring your data html但是当我尝试运行指示
  • 在弹性搜索中使用 GET/POST 时的不同结果

    我正在通过 Elastic Search Head 插件尝试弹性搜索 当我通过 POST 提交查询时 结果符合预期 但是 当我使用 GET 尝试相同的查询时 我总是会返回索引中的所有值 那么 如何通过 GET 将查询传递到弹性搜索服务器 以
  • 在 ElasticSearch API 应用程序中找不到 NodeBuilder

    我正在尝试实现 Elasticsearch API 我的系统接受 nodeBuilder 时出现错误 这是代码 import org elasticsearch action index IndexResponse import org e
  • ElasticCloud 的 ElasticSearch 身份验证错误?

    我刚刚在 ElasticCloud 上设置了一个新的 ElasticSearch 集群 我正在尝试遵循帮助文档 https cloud elastic co help 它说您可以按如下方式发布文档 curl https
  • 弹性搜索文档计数

    我正在运行 2 2 版本的 Elastic 搜索 我已经创建了索引并加载了示例文档 我发现其中有些问题 当我给予 GET index type count 我得到了正确的答案 count 9998 shards total 5 succes
  • 无法使用 java 8 在 Windows 10 上安装 elasticsearch 5.1.1

    我正在尝试在安装了 java 8 111 的 Windows 10 笔记本电脑上安装 ElasticSearch 5 1 1 当我尝试安装 Elastic search 时触发错误 C Users 用户名 Downloads elastic
  • 如何修复从 React 对 Elasticsearch 进行 API 调用时的“混合内容:”错误

    我正在使用 firebase 的 elasticsearch 的 bitnami 版本 我发现它只能连接到http并不是https当我使用邮递员尝试时 我的create react app已部署到 firebase 我得到Mixed Con

随机推荐