ElasticsearchTemplate - 为什么隐式indexName用于某些操作而为其他操作显式

时间:2014-09-11 22:57:36

标签: elasticsearch spring-data spring-data-elasticsearch

查看ElasticsearchTemplate的API,一些操作明确地采用indexName - 例如:
public String delete(String indexName, String type, String id) {...} 其他API操作不会 - 例如, queryForObject
public <T> T queryForObject(GetQuery query, Class<T> clazz) {
这意味着 - 使用queryForObject - 无法针对特定索引运行该操作

我的问题是 - 首先 - 我错过了什么?如果不是 - 为什么索引名称不是所有API操作的输入? 干杯,
尤金。

1 个答案:

答案 0 :(得分:0)

基本上,它是因为以Class作为参数的方法/操作使用Class的Elasticsearch映射来确定要操作的索引和类型。当您编写要在Elasticsearch中存储其实例的Class时,您需要为其指定一个@Document注释,该注释指定将用于保存JSON转换的ES索引和类型Class - es实例。