1

我编写了一个查询以获取名称以 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*”。

但是有人能告诉我哪一个对我的方法来说是最好的和更有效的吗?

谢谢。

4

0 回答 0