在ES通配符v / s query_string中查询多个字段哪一个更快,为什么?

时间:2015-11-21 15:10:48

标签: elasticsearch

大家好我想在ES中搜索通配符查询,现在要搜索多个字段我可以有两种方法首先使用query_string来搜索单词。

{
    "query": {
       "query_string": {
            "fields": ["title", "description", "state"], 
            "query": "Ban*",
            "lowercase_expanded_terms": false
        }
    }
}

我可以使用bool查询,我可以编写多个通配符查询来执行此操作现在我的问题是您认为哪一个是快速且合适的。

    "bool": {
      "should": [
        {"query": {"wildcard": {"title": {"value": "Ban*"}}}},
        {"query": {"wildcard": {"description": {"value": "Ban*"}}}},
        {"query": {"wildcard": {"taste": {"value": "Ban*"}}}}
      ]
    }

1 个答案:

答案 0 :(得分:1)

Lucene查询字符串查询只是将查询字符串转换为bool查询,该查询具有这些简单查询(如match,wildcard,regexp)等。

因此你不应该看到任何差异。