Я ищу способ выполнить поиск по фразе по нескольким полям и иметь возможность использовать подстановочный знак звездочки (*) для поиска префикса и суффикса.
Вот мой пример:
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 , я могу достичь того, что хочу, если речь идет о суффиксном поиске, но поиск по нескольким полям перестает работать, как раньше. А именно, все слова должны быть найдены в одном из перечисленных полей, чтобы соответствовать критериям.
В заключение я должен иметь возможность поиска по нескольким полям (каждое слово в фразе должно соответствовать любому из перечисленных полей) с префиксом или суффиксом. И мне нужен быстрый поиск ... Есть ли способ достичь этого?