Elasticsearch“自联接”类型操作

时间:2016-11-08 13:25:00

标签: elasticsearch

我有一个包含类似文件的索引(省略了不必要的字段)

{
 _id: String,
 ...
 relatedIds: [ String ]
}

relatedIds以递归方式引用文档本身的_id

我想编写一个查询,该查询只返回relatedIds数组中不是文档_id的id。

在摘要中,我想获取所有这些标识符,执行一些计算,以便最后relatedIds中的每个id引用索引中的文档。

1 个答案:

答案 0 :(得分:1)

如果您的id字段也包含在源文档中,您可以这样做:

POST index/_search
{
  "script_fields": {
    "relatedIdsLessId": {
      "script": {
        "inline": "doc. relatedIds.values - doc.id.value"
      }
    }
  }
}

这将计算一个名为relatedIdsLessId的新字段,该字段仅包含不是文档本身ID的相关ID。

注意:如果尚未完成,则需要确保enable dynamic scripting