Ключевое слово Elasticsearch + запрос диапазона (V-6.2) - PullRequest
0 голосов
/ 30 мая 2018

Я пытаюсь написать запрос в Elasticsearch, чтобы он работал с фильтром диапазона и вводом ключевого слова запроса от пользователя.В итоге я напишу запрос:

"size": val, //default 10,
"from": 0, //default 0,
"query": {
    "bool": {
        "must": {
            "query_string": {
                "query": search_query //Val coming from user input
            },
            "filter": {
                "range": {
                    "lastmodifieddate": {
                        "gte": '2016-12-09T00:00:00',
                        "lte": '2016-12-20T00:00:00'
                    }
                }
            }
        }
    }
}

Вышеуказанный запрос не работает.

Также я ищу совпадение 1 из пары ключ-значение из моего эластичного поиска.

_source:
    lastmodifieddate: "2016-12-07T18:34:48.000+0000",
    ..
    ..
    fileType: "PDF"
    ...

Может кто-нибудь пролить свет на то, как заставить его работать, а также параметр запроса со всеми записями должен соответствовать fileType = PDF

TIA

1 Ответ

0 голосов
/ 30 мая 2018

Вы должны поставить «фильтр» снаружи «необходимо».Оба они находятся в другом контексте.Смотрите эту документацию https://www.elastic.co/guide/en/elasticsearch/reference/current/query-filter-context.html

{
"query": {
    "bool": {
        "must": {
            "query_string": {
                "query": "user input" 
            }
        },
        "filter": {
            "range": {
                "lastmodifieddate": {
                    "gte": "2014-01-09T00:00:00",
                    "lte": "2014-12-20T00:00:00"
                }
            }
        }
    }
  }
}
...