我使用弹性版本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>
}
Run Code Online (Sandbox Code Playgroud)
使用存储库将对象保存到ES,_id可以正确填充元数据字段.id字段的getter和setter方法正确返回_id元数据字段的值.但是字段中的id _source字段为空.
2个问题:1)为什么id字段为空?2)id字段为空是否重要?
我正在尝试使用Java API实现弹性搜索的内部命中,但我找不到任何关于它的文档或其他人正在使用的示例.我有我的JSON搜索,其工作方式如下:
{
"query": {
"filtered": {
"query": {
"match_all": {}
},
"filter": {
"nested": {
"path": "locations",
"filter": {
"geo_distance": {
"distance": "20km",
"locations.address.geoLocation": {
"lat": 38.07061,
"lon": -76.77514
}
}
},
"inner_hits": {}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我在elasticsearch库中看到了InnerHitsBuilder和addInnerHit方法,但我找不到有关如何使用它们的文档.