首先,我正在关注位于此处的弹性搜索教程。我正在尝试使用多个查询字符串执行搜索。
我的索引有几个字段,但我感兴趣的是“路径”。
我知道我至少有这条路
path: "ops/TopRelation/...."
在我的索引中。我已经证实了这一点。
那怎么会,这个查询什么也没返回。
{
"query":{
"match":{
"path":{
"query": "ops toprelation",
"operator": "and"
}
}
}
}
但是这个查询返回了我期望的结果。
{
"query": {
"bool": {
"must": [
{ "match": { "path": "ops" }},
{ "match": { "path": "toprelation" }}
]
}
}
}
我认为顶部查询基本上是在内部使用底部查询的查询?事实上,本教程中的示例似乎表明了这一点。
Because the match query has to look for two terms — ["brown","dog"] — internally it
has to execute two term queries and combine their individual results into the overall
result. To do this, it wraps the two term queries in a bool query, which we will
examine in detail in Combining queries below.