【发布时间】:2019-02-12 09:34:16
【问题描述】:
我无法理解以下 Elasticsearch (ES 6.4) 查询的功能:
{
"query" : {
"bool" : {
"should" : [
{
"match" : {
"title" : {
"query" : "example",
"operator" : "AND",
"boost" : 2
}
}
},
{
"multi_match" : {
"type" : "best_fields",
"query" : "example",
"operator" : "AND",
"fields" : [
"author", "content", "tags"
],
"boost" : 1
}
}
],
"must" : [
{
"range" : {
"dateCreate" : {
"gte" : "2000-01-01T00:00:00+0200",
"lte" : "2019-02-12T23:59:59+0200"
}
}
},
{
"term" : {
"client" : {
"value" : "test",
"boost" : 1
}
}
}
]
}
},
"size" : 10,
"from" : 0,
"sort" : [
{
"_score" : {
"order" : "desc"
}
}
]
}
查询成功执行,但检索到大约 400,000 个文档,这是我的索引的总数。这意味着所有文档都在结果集中。但为什么?这真的是 multi_match 查询的正确行为吗?
当我还在使用 query_string 查询时,我只得到了实际匹配的文档。这就是为什么我有点惊讶。
【问题讨论】:
标签: elasticsearch