"socks_a" のように、カテゴリ名_会社名という値を Runtime field を使い、カテゴリ名、会社名と別々のフィールドとして扱うサンプル。
# 1. サンプルデータの登録
POST items-sample/_bulk
{"index": {}}
{"sku":"socks_a","price":500}
{"index": {}}
{"sku":"socks_b","price":300}
{"index": {}}
{"sku":"hat_a","price":2500}
{"index": {}}
{"sku":"hat_b","price":3200}
# 2. Runtime Field の追加
PUT items-sample/_mapping
{
"runtime": {
"item": {
"type": "composite",
"script": "emit(dissect(\"%{category}_%{company}\").extract(doc[\"sku.keyword\"].value))",
"fields": {
"category": {
"type": "keyword"
},
"company": {
"type": "keyword"
}
}
}
}
}
# 3. 検索してテスト
GET items-sample/_search
{
"query": {
"term": {
"item.category": {
"value": "socks"
}
}
}
}
# 4. Stack Management > Saved Objects から runtime-sample.ndjson をインポートしてダッシュボードを作成