人々に関する情報を保存するためのelasticsearchインデックスがあります。特定の人を見つけるためにいくつかのクエリがありますが、それぞれが単独で機能しますが、ブールクエリを使用してそれらを組み合わせるとエラーが発生します。
クエリの 1 つは、名前のあいまい検索です。
{
"query": {
"fuzzy_like_this": {
"fields": [
"firstname",
"lastname"
],
"like_text": "Peter"
}
}
}
別のクエリは、特定の日付範囲で生まれた人を検索するためのものです
{
"query": {
"range": {
"birthdate": {
"from": "1988-12-30",
"to": "1993-12-30"
}
}
}
}
ここで、これら 2 つのクエリを結合します。私のブールクエリ:
{
"query": {
"bool": {
"must": [
{
"query": {
"fuzzy_like_this": {
"fields": [
"firstname",
"lastname"
],
"like_text": "Peter"
}
}
},
{
"query": {
"range": {
"birthdate": {
"from": "1988-12-30",
"to": "1993-12-30"
}
}
}
}
]
}
}
}
両方のクエリを別々に使用すると問題なく動作しますが、それらを組み合わせるとエラーが発生します。私のインデックスには、名前が Peter であり、この日付範囲に生まれた人がいますが、人が見つからなかったとしても、エラーではなく 0 の結果が得られるはずです。
エラーは次のように述べています:
ブールクエリでは不可能な方法でクエリを組み合わせていますか、それとも間違った構文を使用しただけですか?