Прежде всего, это берется из documentation:Elasticsearch индексированный шаблон поиска формирует пустые строки в массиве
Попутный массив строк
GET /_search/template { "template": { "query": { "terms": { "status": [ "{{#status}}", "{{.}}", "{{/status}}" ] } } }, "params": { "status": [ "pending", "published" ] } }
, который визуализируется как:
{ "query": { "terms": { "status": [ "pending", "published" ] } }
Howev э, в моем случае я сделал точно такой же шаблон (по крайней мере я так думаю), но он производит немного другой выход для меня:
.."filter" : {
"bool" : {
"must" : [{
"terms" : {
"myTerms" : [
"{{#myTerms}}",
"{{.}}",
"{{/myTerms}}"
],
"_cache" : true
}
}
]
}
}..
Вот как я это называю позже:
GET /passport/_search/template
{
"template": {
"id": "myTemplate"
},
"params": {
"myTerms": ["1", "2"]
}
}
Однако это выглядит так:
.."myTerms" : ["", "1", "2", ""]..
это не быть проблемой, но myTerms хранятся в виде целых чисел, и я хотел бы сохранить его таким образом (но если только это решение, то хорошо, я может жить с ним), но затем запрос бросает исключение, что он не может преобразовать «» в целочисленный тип, который, как ожидается, поведение
NumberFormatException [Для ввода строки: \ «\»]
Как я должен иметь дело с этим? Я не хочу хранить свои шаблоны в качестве файлов, я предпочитаю их индексировать.
Этот вопрос был многообещающим: Pass an array of integers to ElasticSeach template, но это непонятно, и ответ не решил мою проблему (мне не разрешили хранить мой шаблон, как это).
Elasticsearch используется версия: 1.6.0
Пожалуйста, советы.
Не 'NEST' клиент имеет проблемы при шаблон должен быть назван так? Я не упоминал об этом, о чем я говорю. Думал, что будет простое решение –
Я понятия не имею :-). Мое решение с точки зрения ES и, да, не является простым. Принял мне время, чтобы придумать это. –
Думаете об этом, почему, по-вашему, у клиентов должны быть проблемы? 'myTerms' - это массив кортежей, должен быть способ указать это в NEST. –