如何在索引期间指定spring数据弹性搜索中的路由键 .
我做了一个spring boot应用程序,它使用spring数据elasticsearch索引文档 .
下面是我的文档结构(没有getter setters) .
@Document(indexName = Constants.ES_INDEX_NAME, type = Constants.ES_TYPE,createIndex = false)
public class EsDocument {
@Id
private String ID;
private String group;
private String request;
private String response;
private Filters filters;
public EsDocument() {
}
}
public class Filters {
private String order_id;
private String api_type;
private int status;
private String statusCode;
private String createdAt;
}
这是索引文档的代码 . 我正在使用 ElasticSearchTemplate 索引我的数据 .
public void saveAll(List<EsDocument> esDocuments) {
List<IndexQuery> queries = new ArrayList<>();
for(EsDocument esDocument : esDocuments) {
IndexQuery indexQuery = new IndexQuery();
indexQuery.setObject(esDocument);
indexQuery.setIndexName(esDocument.getGroup());
queries.add(indexQuery);
}
if (queries.size() > 0) {
elasticsearchTemplate.bulkIndex(queries);
}
logger.info("Batch Documents Saved to elastic search");
}
现在如何在索引期间添加 custom routing key ?我想在索引期间添加 filters.order_id 作为我的路由键 .
1 回答
AFAIK ElasticsearchTemplate在某些区域缺少对路由的支持,您必须转到客户端以提供必要的路由信息 .
尝试一些类似的东西