Java REST弹性搜索:使用com.fasterxml.jackson.databind.ObjectMapper的嵌套字段映射

时间:2018-09-28 15:50:49

标签: elasticsearch nested objectmapper elasticsearch-mapping

我有一个field,例如Object_IDs,它可以有多个Object_ID。以下是代码段:

"Object_IDs":{  
           "type":"nested",
           "properties":{  
              "Object_ID": {
                        "type": "text",
                        "fields": {
                            "keyword": {
                                "type": "keyword",
                                "ignore_above": 256
                            }
                        }
                    }
                }
             }

我正在使用Elastic search 6.2.3,并且正在使用com.fasterxml.jackson.databind.ObjectMapper映射对象。

我无法使用nested field创建一个com.fasterxml.jackson.databind.ObjectMapper。这是代码段:

    ObjectNode nestedNode = objectMapper.createObjectNode();
    nestedNode.put("type", "nested");
    nestedNode.put("index", true);
    mapperNode.set("Object_IDs", nestedNode);

    ObjectNode setkeyWord = objectMapper.createObjectNode();
    setkeyWord.put("type", "keyword");
    setkeyWord.put("index", true);

    ObjectNode innerProperties = objectMapper.createObjectNode();
    innerProperties.set("Object_ID", setkeyWord);

    nestedNode.set("properties", innerProperties);

但是结果是:

"mappings": {
            "archive": {
                "properties": {
                    "Object_IDs": {
                        "type": "text",
                        "fields": {
                            "keyword": {
                                "type": "keyword",
                                "ignore_above": 256
                            }
                        }
                    },
                    "Object_ID": {
                        "type": "text",
                        "fields": {
                            "keyword": {
                                "type": "keyword",
                                "ignore_above": 256
                            }
                        }
                    },

请帮助我使用mappingnested field创建com.fasterxml.jackson.databind.ObjectMapper

1 个答案:

答案 0 :(得分:0)

我不了解com.fasterxml.jackson.databind.ObjectMapper。但是您可以通过将Object_IDs字段映射到嵌套类型(如下所示)来创建索引。

kotlin-kapt