У меня есть Filtred Query.
В первом случае поиск происходит по тексту,
{ 'query': {'filtered': {'filter': {'bool': {'must': [{'term': {'status': 4}}]}},
'query': {'bool': {'should': [{'match': {'name': {'operator': 'and',
'query': 'барменша'}}},
{'match': {'description': {'boost': 0.9,
'operator': 'and',
'query': 'барменша'}}},
{'match': {'author': {'boost': 0.8,
'operator': 'and',
'query': 'барменша'}}},
{'match': {'tags': {'boost': 0.7,
'operator': 'and',
'query': 'барменша'}}}]}}}}
Во втором случае используется range filter.
{
'query': {'filtered': {'filter': {'bool': {'must': [{'term': {'status': 4}},
{'range': {'year_to': {'lte': '1946'}}}]}}}}
Полная неожиданность в том, что второй запрос нагружает процессор в 2 раза больше. Почему так? Как исправить?
Маппинг выгляддит так:
"properties": {
"id": {
"type": "integer"
},
"name": {
"analyzer": "russian_morphology",
"type": "string"
},
"description": {
"analyzer": "russian_morphology",
"type": "string"
},
"status": {
"type": "integer"
},
"tags": {
"analyzer": "russian_morphology",
"type": "string"
},
"year_from": {
"type": "integer"
},
"year_to": {
"type": "integer"
}
}