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

Elasticsearch通过公共字段合并两个索引的配置咨询

Elasticsearch通过公共字段合并两个索引的配置咨询

看起来你正在尝试配置Elasticsearch的 enrich 策略和摄入管道,通过公共字段将事件索引的数据关联到客户类文档中对吧?我帮你把配置整理并补充说明一下:

1. 创建Enrich策略

这个策略用来定义从源索引中提取哪些字段,以及通过哪个字段进行匹配关联:

PUT _enrich/policy/merge
{
  "match": {
    "indices": "es.event-154.23-09-01-6-27-22",
    "match_field": "ancestor_id",
    "enrich_fields":  ["status","status_id","type","sub_type","primary_assigned","vehicle_of_interest","dms_ro_number","dms_deal_number","primary_assigned_user_name","dealership_id", "ancestor_id","event_id","deleted","service_date","update_date","secondary_assigned_user_name","bdc_assigned_user_name"]
  }
}
  • indices:指定用来提供关联数据的源事件索引
  • match_field:设置匹配的公共字段,这里用源索引的ancestor_id和目标文档的字段做匹配
  • enrich_fields:定义需要从源索引同步到目标文档的字段列表

注意:创建完策略后,需要执行以下命令加载数据到专属的enrich索引中,否则管道无法使用该策略:

PUT _enrich/policy/merge/_execute

2. 创建Ingest摄入管道

这个管道用来在文档写入时,自动通过enrich策略匹配并补充数据:

PUT _ingest/pipeline/enrich
{
  "processors": [
    {
      "enrich": {
        "description": "Add Events to customer",
        "policy_name": "merge",
        "field": "contact_id",
        "target_field": "events",
        "max_matches": 10  // 这里推测你原本想设置最大匹配条数,可根据实际需求调整
      }
    }
  ]
}
  • policy_name:关联上面创建的merge enrich策略
  • field:目标文档中用来和源索引match_field匹配的字段(这里是contact_id)
  • target_field:匹配到的事件数据会被放到目标文档的这个字段下(这里是events)
  • max_matches:可选参数,控制最多返回多少条匹配的源文档,默认是1,你可以根据业务需求调整

另外要注意:确保源索引的ancestor_id和目标文档的contact_id字段数据类型完全一致,否则会出现匹配失败的情况。

备注:内容来源于stack exchange,提问作者bala n

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.16 07:48:09