我有一个非常简单的联接关系,定义为:
es.indices.create( index= "docpage", body=
{
"mappings": {
"properties": {
"my_document": {
"type": "text"
},
"my_page": {
"type": "text"
},
"my_join_field": {
"type": "join",
"relations": {
"my_document": "my_page"
}
}
}
}
}
)
我正在使用索引父文档
es_d = es.index(index="docpage",doc_type="_doc",id = 1, body={"text": "I am the parent", "my_join_field": "my_document"})
我正在使用索引子文档
pages[0]='I am child 1'
pages[1]='I am child 2'
pages[2]='I am child 3'
pages[3]='I am child 4'
pages[4]='I am child 5'
for page in pages:
res_c = es.index(index="docpage",doc_type="_doc",routing=1,body=
{
"text": page,
"my-join-field": {
"name": "my_page",
"parent": "1"
}
})
当我使用查找索引中的所有条目时
res_doc = es.search(index="docpage", body=
{
"query" : {
"match_all": {}
}
})
我看到文档和索引中的5页。
{'took': 3, 'timed_out': False, '_shards': {'total': 1, 'successful': 1, 'skipped': 0, 'failed': 0}, 'hits': {'total': {'value': 6, 'relation': 'eq'}, 'max_score': 1.0, 'hits': [{'_index': 'docpage', '_type': '_doc', '_id': '1', '_score': 1.0, '_source': {'text': 'I am the parent', 'my_join_field': 'my_document'}}, {'_index': 'docpage', '_type': '_doc', '_id': 'QGxe0m4BLD2e5CPzVs6X', '_score': 1.0, '_routing': '1', '_source': {'text': 'I am child 1', 'my-join-field': {'name': 'my_page', 'parent': '1'}}}, {'_index': 'docpage', '_type': '_doc', '_id': 'QWxe0m4BLD2e5CPzVs79', '_score': 1.0, '_routing': '1', '_source': {'text': 'I am child 2', 'my-join-field': {'name': 'my_page', 'parent': '1'}}}, {'_index': 'docpage', '_type': '_doc', '_id': 'Qmxe0m4BLD2e5CPzV84L', '_score': 1.0, '_routing': '1', '_source': {'text': 'I am child 3', 'my-join-field': {'name': 'my_page', 'parent': '1'}}}, {'_index': 'docpage', '_type': '_doc', '_id': 'Q2xe0m4BLD2e5CPzV84X', '_score': 1.0, '_routing': '1', '_source': {'text': 'I am child 4', 'my-join-field': {'name': 'my_page', 'parent': '1'}}}, {'_index': 'docpage', '_type': '_doc', '_id': 'RGxe0m4BLD2e5CPzV84m', '_score': 1.0, '_routing': '1', '_source': {'text': 'I am child 5', 'my-join-field': {'name': 'my_page', 'parent': '1'}}}]}}
但是当我尝试使用has_parent或has_child时,我没有获得任何点击。此基本查询不会返回任何匹配。
res_doc = es.search(index="docpage", body=
{
"query" : {
"has_parent" : {
"parent_type": "my_document",
"query": {
"match": {
"_id": 1
}
}
}
}
}
任何想法都会受到赞赏。 谢谢。