【发布时间】:2016-09-13 14:33:15
【问题描述】:
我正在使用带有 Elastic 版本 2.2.0 的 Spring Data Elasticsearch 2.0.1。
我的 DAO 类似于:
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
@Document(indexName = "myIndex")
public class MyDao {
@Id
private String id;
public String getId() { return id; }
public void setId(String id) { this.id = id; }
<other fields, setters, getters omitted>
}
使用存储库将对象保存到 ES,_id 元数据字段会正确填充。 id 字段的 getter 和 setter 方法正确返回 _id 元数据字段的值。但是_source字段中的id字段为空。
2 个问题: 1) 为什么 id 字段为空? 2) id 字段是否为空有关系吗?
【问题讨论】:
-
您是让 ES 生成自己的 ID 还是提供自己的 ID?即你是否在打电话给
MyDao.setId("abcdxyz")? -
我让 ES 生成它自己的 ID。我可以使用自动生成 ID 来让 ID 显示在两个字段中吗?
-
@wxkevin 一个不同的问题,但你能分享你的 pom.xml 吗?我在尝试使用 spring-data-elasticsearch 2 时遇到错误:question-link
-
我无法复制和粘贴,但我可以告诉你依赖项和版本号:spring-core (4.2.5.RELEASE)、spring-webmvc (4.2.5.RELEASE)、javax。 servlet-api (3.1.0)、elasticsearch (2.2.0)、spring-data-elasticsearch (2.0.1.RELEASE)、jcl-over-slf4j (1.7.16)、logback-classic (1.1.5)。如果您需要其他具体内容,请随时提出。
标签: java elasticsearch spring-data-elasticsearch