I wrote a query for get all clients whose name start with c. I am getting the same results with the two following queries:
#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"
}
}
}
}
I guess the string query is less efficient as it is explained here:
Be aware that wildcard queries can use an enormous amount of memory and perform very badly — just think how many terms need to be queried to match the query string " a* b* c* ".
But could somebody tell me which one would be the best and more efficient for my approach?
Thanks.