我写了一个查询来获取所有名称以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"
}
}
}
}
我猜字符串查询效率不高,因为它解释了here:
请注意,通配符查询会占用大量内存,并且执行效果非常差。-只是想想需要查询多少个词来匹配查询字符串“ a * b * c *”。
但是有人可以告诉我哪种方法最适合我,并且效率更高吗?
谢谢。