Как поместить сопоставление в файлы JSON с Elasticsearch
У меня есть много документов JSON с этой структурой:
"positions": [
{
"millis": 12959023,
"lat": 49.01525113731623,
"lon": 2.4971945118159056,
"rawX": -3754,
"rawY": 605,
"rawVx": 0,
"rawVy": 0,
"speed": 9.801029291617944,
"accel": 0.09442740907572084,
"grounded": true
},
{
"millis": 12959914,
"lat": 49.01536940596998,
"lon": 2.4967825412750244,
"rawX": -3784,
"rawY": 619,
"rawVx": -15,
"rawVy": 7,
"speed": 10.841861737855924,
"accel": -0.09534648619563282,
"grounded": true
}
...
}
я пытаюсь сопоставить этот документ JSON с Elasticsearch, введя поле geo_point, чтобы получить документ, подобный приведенному ниже:
"positions": [
{
"millis": 12959023,
"location" : {
"lat": 49.01525113731623,
"lon": 2.4971945118159056,
}
"rawX": -3754,
"rawY": 605,
"rawVx": 0,
"rawVy": 0,
"speed": 9.801029291617944,
"accel": 0.09442740907572084,
"grounded": true
},
...
}
PS: эти документы предлагаются API.
Спасибо
2 ответа
Вы могли бы сделать что-то вроде этого:
curl -XPUT 'http://localhost:9200/<indexname>/positions/_mapping' -d @yourjsonfile.json
Надеюсь, это так помогает!
Если вы не можете изменить исходный код, вам необходимо предварительно обработать документ, прежде чем он будет проиндексирован в asticsearch.
- Если вы используете asticsearch < 5.0, вы можете использовать logstash и фильтр mutate.
- Если вы используете asticsearch >= 5.0 (мой совет), используйте конвейер загрузки и процессор переименования.