Elasticsearch: суффикс поиска по строке запроса в нескольких полях - PullRequest
0 голосов
/ 10 сентября 2018

Я ищу способ выполнить поиск по фразе по нескольким полям и иметь возможность использовать подстановочный знак звездочки (*) для поиска префикса и суффикса.

Вот мой пример:

GET /myindex/_search
{
  "query": {
    "simple_query_string" : {
      "query": "mycity mystreet mynumber",
      "default_operator": "AND", 
      "fields":     [ "city", "street", "number"]
    }
  }
}

Я использовал AND в качестве оператора по умолчанию, потому что я хочу, чтобы каждое слово в строке запроса находилось в любых указанных полей.

Когда я проверяю вышеуказанную фразу из трех слов, она сопоставляет записи, содержащие три слова в любом из упомянутых трех полей.

Я также могу использовать звездочку для выполнения поиска по префиксу, например: myc * mystreet mynumber , но я также хочу иметь возможность выполнять поиск по суффиксу, например, * город mystreet mynumber . Но simple_query_string не поддерживает это.

Когда я вместо этого использую query_string , я могу достичь того, что хочу, если речь идет о суффиксном поиске, но поиск по нескольким полям перестает работать, как раньше. А именно, все слова должны быть найдены в одном из перечисленных полей, чтобы соответствовать критериям.

В заключение я должен иметь возможность поиска по нескольким полям (каждое слово в фразе должно соответствовать любому из перечисленных полей) с префиксом или суффиксом. И мне нужен быстрый поиск ... Есть ли способ достичь этого?

...