Я пытался запрашивать бренды, у которых есть какие-либо продукты. Но отношения родитель-потомок не совпадают для части записей. базовая информация:
{
"name": "OueFTFf",
"cluster_name": "elasticsearch",
"cluster_uuid": "LqK-ElvrS36gKRqP9bfAbg",
"version": {
"number": "5.3.3",
"build_hash": "65e26e6",
"build_date": "2017-05-22T12:03:12.318Z",
"build_snapshot": false,
"lucene_version": "6.4.2"
},
"tagline": "You Know, for Search"
}
Запись о бренде ниже в моем эластичном поиске:
{
"_index": "dev_40fa7a5d4ceb59260c730b22a6728ea8",
"_type": "brand",
"_id": "5CC4077395353046E79A275B432FE5C7",
"_score": 1,
"_routing": "5CC4077395353046E79A275B432FE5C7",
"_source": {
"encrypted_id": "5CC4077395353046E79A275B432FE5C7",
"name": "Ball",
...
}
}
Запись о продукте ниже в моем эластичном поиске:
{
"_index": "dev_40fa7a5d4ceb59260c730b22a6728ea8",
"_type": "product",
"_id": "842E8BE3AED89F0C3B944B789B2CF1BC_en-us",
"_score": 1.2809339,
"_routing": "842E8BE3AED89F0C3B944B789B2CF1BC",
"_parent": "5CC4077395353046E79A275B432FE5C7",
"_source": {
"encrypted_id": "842E8BE3AED89F0C3B944B789B2CF1BC",
"name": "a prod"
...
}
}
, а затем, Я пытаюсь использовать '_explain': (результат будет пустым, если я использую запрос без объяснения)
GET dev_40fa7a5d4ceb59260c730b22a6728ea8/brand/5CC4077395353046E79A275B432FE5C7/_explain
{
"query": {
"has_child": {
"type": "product",
"query": {
"match": {
"encrypted_id": "842E8BE3AED89F0C3B944B789B2CF1BC"
}
}
}
}
}
Это результат объяснения:
{
"_index": "dev_40fa7a5d4ceb59260c730b22a6728ea8",
"_type": "brand",
"_id": "5CC4077395353046E79A275B432FE5C7",
"matched": false,
"explanation": {
"value": 0,
"description": "Failure to meet condition(s) of required/prohibited clause(s)",
"details": [
{
"value": 0,
"description": "no match on required clause (GlobalOrdinalsQuery{joinField=_parent#brand})",
"details": [
{
"value": 0,
"description": "Not a match, join value 5CC4077395353046E79A275B432FE5C7",
"details": []
}
]
},
{
"value": 0,
"description": "match on required clause, product of:",
"details": [
{
"value": 0,
"description": "# clause",
"details": []
},
{
"value": 1,
"description": "_type:brand, product of:",
"details": [
{
"value": 1,
"description": "boost",
"details": []
},
{
"value": 1,
"description": "queryNorm",
"details": []
}
]
}
]
}
]
}
}
Я думаюотношения родитель-ребенок не работают. Но я не знаю почему. Кто-нибудь может помочь мне указать причину?