Я использую ES для своего приложения Laravel.Elasticsearch не уверен, что сначала должен быть фильтр или запрос
Что я хочу сделать, это фильтрация поиска.
Я делаю полнотекстовый поиск на поле заголовка, а затем проверить, что цена находится в пределах от 0 - 9999 и активного устанавливаются в 1.
Но оба эти запросы, кажется, работают хорошо на моих тестовых данных. Но в чем разница между ними? Выполняется ли запрос «запрос» в любом случае?
Игнорировать синтаксис, просто взглянуть на структуру запроса.
Первый запрос
'filtered' => [
'query' => [
'match' => ['title' => Input::get('query')]
],
'filter'=> [
'bool' => [
'must' => [
['term' => [ 'active' => 1] ],
[ 'range' => [
'price' => [
'gte' => 1,
'lte' => 99999,
]
]
]
]
]
],
],
Второй запрос
'filtered' => [
'filter' => [
'bool' => [
'must' => [
['term' => [ 'status' => 1] ],
[
'range' => [
'price' => [
'gte' => 1,
'lte' => 99999,
]
]
]
]
]
],
'query' => [
'match' => [
'title' => Input::get('query', '')
]
]
]
Спасибо заранее.