3
我使用Elasticsearch RC 2.0.0。Elasticsearch - Has_Parent或Has_Child查询返回空结果
我得到了一些亲子关系在我的Elasticsearch数据库。我想检索与父对象相关的所有Children。我总是收到一个空的结果列表。我遵循elasticsearch文档的说明,并将我的代码与几本书进行了比较。我不明白,为什么我的查询应该返回一个空的结果。
在这种情况下,我建立了一个简化的例子。我将两个对象放到elasticsearch中,并将对象a设置为对象b的父对象。然后我尝试检索所有对象,其中有一个父类型为a的。
这是我输入:
PUT test
PUT test/myobject/_mapping
{
"myobject":{
"_parent" : {"type":"pobject"},
"properties" : {
"name" : {"type":"string"}
}
}
}
PUT test/pobject/_mapping
{
"pobject" : {
"properties": {
"name": {"type":"string"}
}
}
}
PUT test/pobject/1
{
"name":"theParent"
}
PUT test/myobject/1?_parent=1&routing=_id
{
"name":"theChild"
}
POST test/myobject/_search?routing=_id
{
"query":{
"has_parent":{
"type":"pobject",
"query":{
"match_all":{}
}
}
}
}
这将返回
{
"took": 2,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"failed": 0
},
"hits": {
"total": 0,
"max_score": null,
"hits": []
}
}
您好,感谢,但我仍然会收到一个空resultlist。无论如何,当我打电话给测试/ myobject/1我看到有一个家长注册这个项目。 – Goot
@Goot更新了我的答案。 –
原因:我使用父类型参数的错误名称(“类型”而不是“parent_type”),我在使用映射参数时也犯了一个错误。谢谢 – Goot