Elasticsearch で作業する同様の種類のデータ セットがあります。
{
"id" :1,
"title" : "Toy Story 1",
"year" : 1995 ,
"category" : "Adventure"
},
{
"id" :2,
"title" : "Jumanji",
"year" : 1995,
"category" : "Adventure"
},
{
"id" :3,
"title" : "Grumpier Old Men",
"year" : 1996,
"category" : "Comedy"
},
{
"id" :4,
"title" : "Toy Story 2",
"year" : 1996,
"category" : "Action"
},
{
"id" :5,
"title" : "Toy Story 3"
"year" : 1997
"category" : "Comedy"
},
{
"id" :6,
"title" : "Toy Story 4"
"year" : 2019
"category" : "Comedy"
}
これが私のインデックスのマッピングです。
{
"movies": {
"mappings": {
"properties": {
"category": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"id": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"title": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"year": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
}
}
}
データを取得するために検索テンプレートを使用しています。テンプレートを作成し、テンプレートの ID を渡してデータをクエリしました。
同じものについては、以下のリンクを参照してください。 検索テンプレート
テンプレートを作成し、テンプレートを使用してデータをクエリするために郵便配達員を使用しています。
以下のようにテンプレートを作成しました。
POST _scripts/test
{
"script": {
"lang": "mustache",
"source": {
"query": {
"match": {
"title": "{{query_string}}"
}
}
}
}
}
POST _search/テンプレート
{
"id": "test",
"params": {
"query_string": "toy"
}
}
これはうまくいっています。期待通りの結果が得られています。
今、私はテンプレートのフィルタリングオプションにこだわっています。
カテゴリでフィルタリングしたい。テンプレートにカテゴリを追加し、値を次のように渡したい["Comedy", "Adventure"]
テンプレートにフィルターを追加し、配列値を渡すにはどうすればよいでしょうか?