Используя весенний эластичный поиск данных, я хочу сделать следующее (массовое индексирование)
Шаг 1
PUT surname
{
"settings" : {
"index" : {
"number_of_shards" : 1,
"number_of_replicas" : 0
}
},
"mappings": {
"properties": {
"message": {
"type": "text"
},
"query": {
"type": "percolator"
}
}
}
}
Шаг 2:
PUT surname/_bulk
{ "index" : { "_index" : "surname", "_type" : "_doc", "_id" : "1" } }
{ "query" : { "match_phrase" : { "message" : "Aal" } }}
{ "index" : { "_index" : "surname", "_type" : "_doc", "_id" : "2" } }
{ "query" : { "match_phrase" : { "message" : "Aalbers" } }}
Шаг 1 выполняется с помощью - https://stackoverflow.com/a/67724048/4068218< /а>
Для шага 2 я попытался
IndexQuery и UpdateQuery
Query query = new CriteriaQuery(new Criteria("match_phrase").subCriteria(new Criteria("message").is("Aal")));
UpdateQuery updateQuery = builder(query).build();
elasticsearchOperations.bulkUpdate(ImmutableList.of(updateQuery),IndexCoordinates.of(indexName.get()));
но оба не работают. Если я использую UpdateQuery, я получаю сообщение об ошибке проверки: 1: отсутствует идентификатор; 2: отсутствует сценарий или документ.
Если я использую IndexQuery, я получаю неверный формат запроса.
Как выполнить Шаг 2 в весеннем поиске эластичных данных? Любое руководство высоко ценится.