Я пытаюсь выучить Elastic Search
с помощью пакета php composer. У меня есть index
с именем media_data
, которое содержит поля nits_account
, nits_url
, session_id
, timestamp
. Я хочу иметь фильтры на основе вышеуказанных полей, и он должен быть в and
операторе. мой текущий код запроса:
$items = $this->elasticsearch->search([
'index' => $index_name,
'body' => [
'query' => [
'filtered' => [
'filter' => [
'and' => [
['match' => ['nits_account' => 'xyzABCD2190-aldsj']], //API Key
['match' => ['nits_url' => 'google.com']],
]
]
]
]
]
]);
Мой вопрос:
Я не могу получить данные. Но если я сделаю код ниже:
$items = $this->elasticsearch->search([
'index' => $index_name,
'body' => [
'query' => [
'bool' => [
'should' => [
['match' => ['nits_account' => $account] ],
['match' => ['nits_url' => $domain] ],
],
],
]
]
]);
, я получу значения в or
операторах, но мне потребуется операция and
.
Как я могу иметь различные операции поиска с соответствующими полями, я хочу иметь поле
nits_account
для точного соответствия, я хочу иметь
nits_url
с операциями типа / с подстановочными знаками, отметка времени должна быть сопоставимой (больше чем / меньше чем / между двумя датами).