Поиск подстановочных фраз вasticsearch - PullRequest
1 голос
/ 18 марта 2020

У меня есть рабочий поиск по шаблону, но он не принимает пробелы. Я уже пробовал match_phrase, но он только ищет точные слова. Это результат поиска, который я хочу

Проекты:"Пример проекта один", Пример проекта два " ввод:"Ect One" Результат: «Проект One Sample»

Вот мой рабочий код

GET <index_name>/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "query_string": {
            "query": "*roj*",
            "fields":["field_1", "field_2"]
          }
        }
      ]
    }
  }
} 

UPDATE Я просто понимаю, что одним из моих полей для строки запроса является метка времени, которая вызывает ошибку. Теперь моя проблема - query_string поиск только по префиксу, он не включает следующий префикс в поиске. ie Проекты:"Образец проекта один", Образец проекта два " ввод:"ect One" результат:"Проект один образец", проект второй образец "

Ответы [ 2 ]

0 голосов
/ 19 марта 2020

Наконец я нашел решение.

Оператор по умолчанию для query_string - OR, поэтому он отображает только результат поиска по первому префиксу. Для получения результата префиксов используйте оператор AND

source: query_string

0 голосов
/ 18 марта 2020

Вы можете искать так:

*ect One

Например:

GET <index_name>/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "query_string": {
            "query": "*ect One",
            "fields":["field_1", "field_2"]
          }
        }
      ]
    }
  }
}

Вы можете проверить это для получения дополнительной информации.

...