Я написал запрос для всех клиентов, чье имя начинается с c. Я получаю одинаковые результаты с двумя следующими запросами:
#Q1 Query String and * wildcard
GET /client/_search
{
"query": {
"query_string": {
"default_field": "Name.keyword",
"query": "c*"
}
}
}
#Q2 prefix query
GET /client/_search
{
"query": {
"prefix": {
"Name.keyword": {
"value": "c"
}
}
}
}
Я думаю, что строковый запрос менее эффективен, как объясняется здесь :
Имейте в виду, что подстановочные запросы могут использовать огромный объем памяти и работать очень плохо - просто подумайте, сколько терминов нужно запросить, чтобы соответствовать строке запроса "a * b * c*".
Но может ли кто-нибудь сказать мне, какой из них будет лучшим и более эффективным для моего подхода?
Спасибо.