複数のフィールドをマッチングする方法は?

Elasticsearchでは、複数のフィールドで曖昧な検索を行うためにブールクエリ(Bool Query)を使用することができます。布てるクエリは、曖昧一致、正確一致、範囲検索など、複数の条件の組み合わせをサポートしています。

以下は、複数のフィールドに対してブールクエリを使用して部分一致検索を行う例です。

{
  "query": {
    "bool": {
      "should": [
        {
          "match": {
            "field1": {
              "query": "keyword",
              "fuzziness": "AUTO"
            }
          }
        },
        {
          "match": {
            "field2": {
              "query": "keyword",
              "fuzziness": "AUTO"
            }
          }
        }
      ]
    }
  }
}

上記の例では、field1とfield2は、曖昧なマッチングを行う2つのフィールドを表し、keywordはマッチングするキーワードを表します。fuzzinessパラメータは、曖昧なマッチングの程度を指定し、AUTOは曖昧なマッチングの編集距離を自動計算します。

should配列に複数のmatch句を追加することで、複数のフィールドの曖昧一致を実現できます。ブールクエリのshouldフィールドは、いずれかの句が一致すれば良いことを表します。全てのフィールドが一致する必要がある場合は、mustフィールドを使用してください。

注意:为了进行模糊匹配,字段的类型应该是文本类型(如text),而不是关键字类型(如keyword)。如果字段是关键字类型,可以在查询之前使用match查询进行转换。

bannerAds