Существует индекс shakespeare
с документами, похожими на следующие:
{
"_index" : "shakespeare",
"_type" : "line",
"_id" : "24",
"_score" : 1.0,
"_source" : {
"play_name" : "Henry IV",
"speech_number" : 1,
"line_number" : "1.1.22",
"text_entry" : "Forthwith a power of English shall we levy;",
"speaker" : "KING HENRY IV",
"line_id" : 1
}
},
У меня есть файл / таблица / et c., Который выглядит следующим образом
+---------+--------------+
| line_id | is_a_good_line |
+---------+--------------+
| 1 | 1 |
| 2 | 1 |
| 3 | 0 |
| 4 | 0 |
| 5 | 1 |
+---------+--------------+
Я хочу, чтобы для каждого документа в индексе shakespeare
было новое поле is_a_good_line
со значением, соответствующим отображению из таблицы (на основе line_id
). Итак, для приведенного выше примера значение is_a_good_line
должно быть равно 1, как показано ниже:
{
"_index" : "shakespeare",
"_type" : "line",
"_id" : "24",
"_score" : 1.0,
"_source" : {
"play_name" : "Henry IV",
"speech_number" : 1,
"line_number" : "1.1.22",
"text_entry" : "Forthwith a power of English shall we levy;",
"speaker" : "KING HENRY IV",
"is_a_good_line" : 1,
"line_id" : 1
}
},
Я нашел способ просто добавить новое поле для всех документов со значением stati c:
POST shakespeare/_update_by_query
{
"script": {
"inline": "ctx._source.is_a_good_line = 0",
"lang": "painless"
}
}
Как добавить новое поле со значением, определенным в таблице сопоставления выше (на основе значения line_id
)?