[Это мой первый пост, пожалуйста, извините меня, если я что-то делаю неправильно! (также извините за мой плохой английский)]
Я пытаюсь разработать Mapper/Plugin для elasticsearch (в Java), которые анализируют некоторые определенные поля JSON и добавляют другое поле с результатом анализа перед сохранением и индексированием данных.
EG: Я начинаю с этого популярного JSON:
{
"tweet" {
"user" : "kimchy",
"message" : "This is a tweet!",
"postDate" : "2009-11-15T14:12:12",
"priority" : 4,
"rank" : 12.3
}
}
И, прежде чем индексировать, я хочу:
{
"tweet" {
"user" : "kimchy",
"message" : "This is a tweet!",
"postDate" : "2009-11-15T14:12:12",
"priority" : 4,
"rank" : 12.3
"IsKimchy" : "Yes"
}
}
Здесь я предполагаю прочитать поле "пользователь", и если пользователь является Kimchy, я создаю другое поле, содержащее "Да". как я могу анализировать поле (используя java), подобное этому перед индексированием?
Как я знаю, я могу копировать содержимое поля в другом, используя Copy_to, поэтому я могу работать только на поле, может быть, это может помочь?
Наконец-то я нашел решение для своей проблемы, я отправлю его здесь, надеюсь помочь кому-то еще!
лучшее решение для меня (в терминах скорости и интеграции) было Custom mapper!
Я использовал этот демонстрационный код https://github.com/dadoonet/elasticsearch-mapper-demo для реализации моего класса сопоставления, который анализирует Json Faster, чем скрипты, и добавляет настраиваемое поле в запись!
Ура!