首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Elasticsearch -按父id查询

Elasticsearch -按父id查询
EN

Stack Overflow用户
提问于 2014-03-11 00:38:58
回答 1查看 3.1K关注 0票数 0

我有三种文档类型,具有以下与父/子关系的映射。我忽略了其他性质,因为我认为它们与问题无关。

代码语言:javascript
复制
   "mappings": {
     "Parent": {            
        },
     "Child": {
        "_parent": {
           "type": "Parent"
        },
        "_routing": {
           "required": true
        }             
     },
     "GrandChild": {
        "_parent": {
           "type": "Child"
        },
        "_routing": {
           "required": true
        }             
     }
  }

我使用java将文档插入索引。在索引文档之前,需要删除具有相同ids的现有文档,以避免重复。父Id和子Id存储在外部。首先,所有"GrandChild“文档都使用其父id的术语查询(在本例中是"Child”类型的id )被删除。没有错误,但是"GrandChild“文档没有被删除。

通过使用chrome插件意义运行下面的术语查询,我发现问题在术语查询中。它不会回击。父、子和GrandChild具有相同的路由值,该值设置为父节点的id。这是我尝试过的查询。

代码语言:javascript
复制
POST /myindex/GrandChild/_search?routing=DFC0E8CD59EBC00EC2DDC9A0FF5D1F2DB272B2449680824CCE60B6864568D498
{
    "query" : {
        "term" : { "_parent" : "//id/of/doc/of/type/Child" }
    }
}

当我试图使用父id搜索“子”文档时,它可以工作。我使用以下查询得到一个“子”。

代码语言:javascript
复制
POST /myindex/Child/_search?routing=DFC0E8CD59EBC00EC2DDC9A0FF5D1F2DB272B2449680824CCE60B6864568D498
{
    "query" : {
        "term" : { "_parent" : "DFC0E8CD59EBC00EC2DDC9A0FF5D1F2DB272B2449680824CCE60B6864568D498" }
    }
} 

我在"GrandChild“搜索中做错了什么?

任何帮助都是非常感谢的。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-12 16:50:13

从elasticsearch邮件列表aZejNMBD8得到了这个问题的答案

这里有一个尚未解决的问题:https://github.com/elasticsearch/elasticsearch/issues/5399

编辑:问题中所示,执行查询的方式是在ID前面加上父类型:

代码语言:javascript
复制
POST /myindex/GrandChild/_search?routing=DFC0E8CD59EBC00EC2DDC9A0FF5D1F2DB272B2449680824CCE60B6864568D498    
{
    "query" : {
        "term" : { "_parent" : "Child#//id/of/doc/of/type/Child" }
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22314222

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档