如何使用Java API为弹性搜索索引设置嵌套映射?

时间:2016-03-20 21:58:35

标签: java elasticsearch

我想在弹性搜索中利用嵌套对象索引。我知道如何通过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将所有内容编入索引作为数据类型嵌套?

任何帮助表示赞赏!谢谢!

0 个答案:

没有答案