我有多个具有不同索引名称的文档,这些文档批量保存在ElasticSearch中:
public void bulkCreateOrUpdate(List personUpdateList, List addressUpdateList, List positionUpdateList) {
this.operations.bulkUpdate(personUpdateList,Person.class);
this.operations.bulkUpdate(addressUpdateList, Address.class);
this.operations.bulkUpdate(positionUpdateList, Position.class);
}
但是,通过只调用一行代码,保存不同索引类型的多个列表,是否仍然可以优化这一点?
2条答案
按热度按时间uqdfh47h1#
Tldr;
bulk api当然可以。
这是一个有效呼叫
您的Java客户端如何处理它...我不确定。
溶液
这可以通过以下方式实现:
这可以通过以下方式实现:
eiee3dmh2#
对于Spring Data ElasticSearch:
ElasticsearchOperations.bulkXXX()
方法将List<IndexQuery>
作为第一个参数。您可以在每个对象上设置一个索引名称,以指定应在哪个索引中写入/更新数据。如果IndexQuery
中未设置索引名称,则使用从最后一个参数(实体类或IndexCoordinates
对象)获取的索引名称。