我想在弹性搜索中利用嵌套对象索引。我知道如何通过curl(https://www.elastic.co/guide/en/elasticsearch/guide/current/nested-mapping.html)对PUT请求这样做,但我想通过Java API来做到这一点。
以下是我动态创建索引的方法
public void index(AnObject obj){
Client client = elasticService.getES();
// generate json
if (client != null){
try {
byte[] json = JSON.serializeAsBytes(obj);
IndexResponse response = client.prepareIndex("titan", "objIndex", obj.getUuid())
.setSource(json)
.get();
} catch (ElasticsearchException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
以下是我如何更新
public void updateIndex(AnObject obj){
Client client = elasticService.getES();
// generate json
if (client != null){
try {
byte[] json = JSON.serializeAsBytes(obj);
UpdateResponse response = client.prepareUpdate("titan", "objIndex", obj.getUuid())
.setDoc(json)
.get();
} catch (ElasticsearchException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
我想知道是否有办法通过Java设置索引,以便将特定或所有嵌入对象映射为嵌套
如果不可能,是否可以配置Elastic search default mapping将所有内容编入索引作为数据类型嵌套?
任何帮助表示赞赏!谢谢!