Closed2

elasticsearchで配列を持つドキュメントを使ってみる

bookstorebookstore

配列を持つドキュメントを保存するには?

elastic - Field data types arrays

まず、Elasticsearchには配列というフィールドタイプは存在しない。それぞれのフィールドは一つ以上の値を配列で持つことができる。ただし、配列はすべて同じフィールドタイプでなくてはいけない。

PUT demo-index
{
    "mappings": {
        "properties": {
            "demo-array": {
                "type": "keyword"
            }
        }
    }
}

PUT demo-index/_doc/1
{
    "demo-array": [
        "string-1",
        "string-2",
        "string-3"
    ]
}

GET demo-index/_mapping

// RESPONSE
{
  "demo-index": {
    "mappings": {
      "properties": {
        "demo-array": {
          "type": "keyword"
        }
      }
    }
  }
}
bookstorebookstore

配列を使った検索はどうする?

選択肢の一つに terms クエリがある。これは、完全一致で配列の要素を検索するもの。OR条件で検索される。

elastic - Terms query

GET demo-index/_search
{
    "query": {
        "terms": {
            "demo-array": ["string-1", "string-2"]
        }
    }
}
このスクラップは2022/03/05にクローズされました