У меня есть аналогичный набор данных для работы с 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
}
}
}
}
}
}
}
Я использую шаблон поиска для получения данных. Я создал шаблон и запрашиваю данные, передав идентификатор шаблона.
Вы можете найти то же самое по приведенной ниже ссылке. Search-template
Я использую почтальона для создания шаблона и запроса данных с помощью шаблона.
Я создал шаблон, как показано ниже:
POST _scripts / test
{
"script": {
"lang": "mustache",
"source": {
"query": {
"match": {
"title": "{{query_string}}"
}
}
}
}
}
POST _search / template
{
"id": "test",
"params": {
"query_string": "toy"
}
}
Это работает нормально. Я получаю ожидаемый результат.
Теперь я застрял с опцией фильтрации в шаблоне.
Я хочу выполнить фильтрацию по категории. Я хочу добавить категорию в шаблон и передать значения как ["Comedy", "Adventure"]
Как мы можем добавить фильтры в шаблон и передать ему значения массива?