まず第一に、ここにある弾性検索のチュートリアルに従っています。複数のクエリ文字列で検索を実行しようとしています。
私のインデックスにはいくつかのフィールドがありますが、私が興味を持っているのは「パス」です。
私は少なくともこの道を持っていることを知っています
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.