如果指定了多个字段,elasticsearch simple_query_string查询是否使用dis_max或bool组合查询?

时间:2014-10-16 16:40:43

标签: elasticsearch

我目前正在使用多个query_stringfields的{​​{1}}查询。我考虑切换到"use_dis_max": false查询,这也允许多个simple_query_string。但是,docs并未提及fields的{​​{1}}参数,也无法解释如何合并多个字段的查询。多字段use_dis_max查询是否使用simple_query_stringsimple_query_string组合了查询?有没有办法指定一个或另一个?

1 个答案:

答案 0 :(得分:2)

好问题,文档中没有提及它,但它构造了一个bool查询。 使用Lucene的SimpleQueryParser实现简单查询字符串。 看一下代码,看起来它是一个布尔查询。

您可以通过运行带有explain标志的simple_query_string查询来确认这一点

{
    "explain": true, 
      "_source" :["doc_id"],
    "query": {
        "simple_query_string": {
            "fields" :<field_list>,
            "query" : <token>
        }
    }
}

在响应的解释部分,我们看到sum_of而不是max_of,它将显示在dis_max中,表明它是一个布尔查询。 无法在simple_query_string中设置dis_max标志。