我编写了一个查询以获取名称以 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*”。
但是有人能告诉我哪一个对我的方法来说是最好的和更有效的吗?
谢谢。