You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Elasticsearch:如何基于另一索引字段值匹配查询目标索引文档

跨索引匹配查询实现方案

要获取index01中department字段值与index02的course_name字段值匹配的文档,你可以使用Elasticsearch的Terms Lookup功能,它支持从另一个索引中动态获取匹配值列表,无需提前导出数据。

具体查询语句

GET /index01/_search
{
  "query": {
    "terms": {
      "department": {
        "index": "index02",
        "id": "*",
        "path": "course_name"
      }
    }
  }
}

关键参数说明

  • terms.department: 指定要匹配的index01目标字段
  • index: 数据源索引,这里指定为index02
  • id: 设置为*表示获取index02中所有文档的对应字段值;若需限定特定文档,可直接指定文档ID
  • path: 指定index02中用来匹配的字段,即course_name

注意事项

  • 确保index02的course_name字段是keyword类型(或其他可聚合的字段类型),Terms Lookup依赖字段的聚合能力提取值列表
  • 如果index02文档量较大,可通过添加过滤条件(在terms内嵌套filter)缩小数据范围,避免性能损耗
  • 默认情况下,Terms Lookup最多返回100个匹配值,若需要更多结果可调整size参数

内容的提问来源于stack exchange,提问作者Srujan Gundeti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 04:22:03