使用elasticsearch查询获取所有_id的文档,以数组值存储在文档中

问题描述 投票:0回答:1

下面是我的映射索引文档示例:

{
  "_index": "sample_index",
  "_type": "default",
  "_id": "id-sample-0005",
  "_score": 1,
  "_source": {
      "name": "Eenst Y kios",
      "ids_mapped": [
         "id-sample-00010",
         "id-sample-00011"
      ]
   }
}

我需要编写一个查询,该查询将基于作为参数传递的_id获取文档,并且所有_id值都存在于“ ids_mapped”字段中。

GET sample_index/_search
{
  "query": {
    "terms": {
      "_id": [
         "id-sample-0005"
      ]
    }
  }
}

不知道如何编写上面的查询来满足我的要求。基本上,在上述查询中,用户将仅传递“ id-sample-0005”值作为参数,并且查询应返回3个文档。即[id-sample-0005,id-sample-00010,id-sample-00011]。

非常感谢您的帮助。

elasticsearch nest sense
1个回答
2
投票

实现此目的的一种方法是利用terms lookup feature

以下查询将返回ID为termsid-sample-0005id-sample-00010的所有三个文档:

id-sample-00011

第一个子约束返回主文档本身,第二个子约束将返回具有映射ID的文档。

© www.soinside.com 2019 - 2024. All rights reserved.