JastaFly
@JastaFly

Почему не работает фильтр из двух слов?

Есть вот такой запрос к Elasticsearch на PHP:
$params = [
      'index' => 'events',
      'body'  => [
        'query' => [
          'bool' => [
            'filter' => [
              'term' => [
                'conditions' => $filter
              ]
            ]
          ]
        ]
      ]
    ];

$this->client->search($params)

Если в переменной $filter содержится одно слово, то всё прекрасно работает и элементы находятся. Но если там будет два слова разделённых пробелом, то не найдётся ничего, не смотря на то что поля с таким содержимым точно есть. Подскажите в чём проблема.
  • Вопрос задан
  • 45 просмотров
Решения вопроса 1
leahch
@leahch
3D специалист. Dолго, Dорого, Dерьмово.
term - поиск по одному терму, terms - поиск по множеству термов,
{
  "query": {
    "terms": {
      "user.id": [ "kimchy", "elkbee" ],
      "boost": 1.0
    }
  }
}

https://www.elastic.co/guide/en/elasticsearch/refe...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы