我正在使用Spring Data Elasticsearch 2.0.1和Elasticsearch版本2.2.0。
我的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 字段为空是否重要?
MyDao.setId("abcdxyz")
? - Val