Elasticsearch - как искать часть слова по всем индексам и документам - PullRequest
0 голосов
/ 19 февраля 2020

Я хочу сделать поиск, который работает следующим образом:

  • , когда я, например, введу "Des c", я хочу получить все, что содержит "Des c", и не быть чувствительным к регистру. Я не хочу включать индексное имя или документ, я хочу, чтобы он осуществлял поиск по всему.

Я пробовал это, но это не очень хорошо работает.

GET /_search 
{
  "query": 
      { "query_string": 
          { 
            "query": "Test*" 
          } 
      }
}

1 Ответ

1 голос
/ 19 февраля 2020

Попробуйте использовать поиск по шаблону. Убедитесь, что поле, которое вы ищете, является text field.

{
    "query": {
        "query_string" : {
            "query" : "*desc*"
        }
    }
}

Если вы хотите использовать весь индекс, вы можете сделать запрос следующим образом

curl -XGET 'http://localhost:9200/index1,index2/_search

PS: с точки зрения производительности это плохая идея, так как это ищет все поля в индексе. В качестве альтернативы вы можете использовать default_field в строке запроса и указать поле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...