0

人々に関する情報を保存するための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 の結果が得られるはずです。

エラーは次のように述べています:

ブールクエリでは不可能な方法でクエリを組み合わせていますか、それとも間違った構文を使用しただけですか?

4

1 に答える 1