У меня есть данные этой формы:ElasticSearch - Dot в поле имя вложенного объекта
{
"workers": {
"worker.1": {
"jobs": 1234
},
},
"total_jobs": 1234
}
и я пытаюсь разобраться с наличием «точку» в имени-поля. Я попробовал это отображение:
{
"worker_stats": {
"properties": {
"workers": {
"type": "object",
"properties": {
"worker.1": {
"type": "nested",
"index_name": "worker_1",
"properties": {
"jobs": {
"type": "integer"
}
}
}
}
},
"total_jobs": {
"type": "integer"
}
}
}
}
, но когда я за мое отображение, то index_name не-где видно, и когда я добавляю документ, он все еще есть точки.
В конце концов, я просто пытаюсь сделать некоторые агрегированные:
{
"query": {
"filtered": {
"query": {
"match_all": {}
}
}
},
"aggs": {
"worker1_stats": {
"aggs": {
"stats": {
"stats": {
"field": "workers.worker.1.jobs"
}
}
},
"nested": {
"path": "workers.worker.1"
}
}
}
}
но точка мешает.
Что делать, чтобы справиться с этой точкой? Есть ли способ использовать script
вместо field
? (Это мое использование nested
даже правильного
Интересно, я просто попробовал это и отлично работает для не вложенных полей. 1.0.0 RC2 имеет поле '' copy_to''', которое может работать. [ссылка на ES doco на нем] (http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/mapping-core-types.html#copy-to) – mconlin