使用 elasticsearch 查询将 _id 的所有文档存储为文档中的数组值
Get all documents for _id stored as array values inside the document using elasticsearch query
下面是我的映射索引文档示例:
{
"_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" 值作为参数,并且查询应该 return 3 个文档。即 [id-sample-0005,id-sample-00010,id-sample-00011].
非常感谢任何帮助。
实现此目的的一种方法是利用 terms
lookup feature。
以下查询将 return id 为 id-sample-0005
、id-sample-00010
和 id-sample-00011
的所有三个文档:
POST sample_index/_search?pretty
{
"query": {
"bool": {
"should": [
{
"term": {
"_id": "id-sample-0005" <-- input your ID here
}
},
{
"terms": {
"_id": {
"index": "sample_index",
"type": "default",
"id": "id-sample-0005", <-- and here
"path": "ids_mapped.keyword"
}
}
}
]
}
}
}
第一个子约束 return 主文档本身,第二个子约束 return 具有映射 ID 的文档。
下面是我的映射索引文档示例:
{
"_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" 值作为参数,并且查询应该 return 3 个文档。即 [id-sample-0005,id-sample-00010,id-sample-00011].
非常感谢任何帮助。
实现此目的的一种方法是利用 terms
lookup feature。
以下查询将 return id 为 id-sample-0005
、id-sample-00010
和 id-sample-00011
的所有三个文档:
POST sample_index/_search?pretty
{
"query": {
"bool": {
"should": [
{
"term": {
"_id": "id-sample-0005" <-- input your ID here
}
},
{
"terms": {
"_id": {
"index": "sample_index",
"type": "default",
"id": "id-sample-0005", <-- and here
"path": "ids_mapped.keyword"
}
}
}
]
}
}
}
第一个子约束 return 主文档本身,第二个子约束 return 具有映射 ID 的文档。