Какой запрос лучше?
Позвольте мне ответить по пунктам.
- Может ли кто-нибудь объяснить, в чем различия между подстановочными знаками, префиксами, query_string и Regexp?
Они очень похожи в том, что они могут сделать и как они реализованы. Фактически, подстановочный знак , префикс и регулярное выражение одинаково плохо работают . query_string query позволяет выполнять более сложные запросы, например, с использованием логических операторов, таких как OR
и AND
. query_string
поддерживает подстановочные знаки , которые, как я считаю, являются теми же подстановочными знаками, что и запрос wildcard
.
Какой из них можно искать с лучшей производительностью?
Итог: все они плохие.
Это лучший способ быстрого поиска по тегам товара с определением поля ключевого слова и поиска одним из трех упомянутых мной способов?
Я полагаю, что если вы используете логический фильтр запрос для уменьшения количества совпадающих документов, тогда производительность должна улучшиться, но прирост производительности может все еще быть перегружен из-за того, насколько неэффективны запросы, подобные регулярным выражениям сверху.
Как реализовать автозаполнениес Elasticsearch?
Как вы упомянули в комментарии выше, вы хотели бы реализовать автозаполнение, поэтому тип данных search_as_you_type
может быть именно тем, что вы ищете.
Другая похожая функция - подсказки . Они оба попытаются использовать более эффективное сопоставление на основе терминов, а не на основе регулярных выражений.
Надеюсь, это поможет!