Здравствуйте! Подскажите, пожалуйста, я наткнулся на странное поведение при работе с has_child запросом. Дело в том, что в некоторых запросах у меня оказывается пустым массив inner_hits.hits.
Например, в запросе ниже, прилетает ответ с пустым inner_hits, а если убрать один элемент из should верхнего уровня, inner_hits будет заполнен.
Могли бы вы пояснить такое поведение? Версия ES 6.4.3
{
"query": {
"bool": {
"filter": [
{
"bool": {
"should": [
{
"bool": {
"filter": [
{
"has_child": {
"type": "document",
"inner_hits": {
"size": 1
},
"query": {
"bool": {
"should": [
{
"span_near": {
"clauses": [
{
"span_multi": {
"match": {
"prefix": {
"fileContent": {
"value": "молок",
"rewrite": "top_terms_4096"
}
}
}
}
},
{
"span_multi": {
"match": {
"prefix": {
"fileContent": {
"value": "натур",
"rewrite": "top_terms_4096"
}
}
}
}
}
],
"slop": 10,
"in_order": false
}
}
]
}
}
}
}
]
}
},
{*****}
]
}
}
]
}
}
}
Ответ:
{
"took": 12,
"timed_out": false,
"_shards": {
"total": 6,
"successful": 6,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 2,
"max_score": null,
"hits": [
{
"_index": "tenders_2019",
"_type": "_doc",
"_id": "tender_33058543",
"_score": null,
"sort": [
1547746740000
],
"inner_hits": {
"document": {
"hits": {
"total": 0,
"max_score": null,
"hits": []
}
}
}
},
{
"_index": "tenders_2019",
"_type": "_doc",
"_id": "tender_33059452",
"_score": null,
"sort": [
1547719620000
],
"inner_hits": {
"document": {
"hits": {
"total": 4,
"max_score": 634.7183,
"hits": [
{
"_index": "tenders_2019",
"_type": "_doc",
"_id": "document_77837537",
"_score": 634.7183,
"_routing": "tender_33059452",
"_source": {
"docId": 156399288,
"document": {
"name": "document",
"parent": "tender_33059452"
},
"name": "b3931cf5-233b-417d-9113-e7be5957b779.docx",
"contentLength": 9021,
"id": 77837537,
"source": "РАЗДЕЛ II СПЕЦИФИКАЦИЯ молочные продукты.docx"
}
}
]
}
}
}
}
]
}
}