首页 > 解决方案 > Java REST 弹性搜索:使用 com.fasterxml.jackson.databind.ObjectMapper 的嵌套字段映射

问题描述

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 fieldusing 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
                            }
                        }
                    },

请帮助我使用创建 mapping嵌套字段com.fasterxml.jackson.databind.ObjectMapper

标签: elasticsearchnestedobjectmapperelasticsearch-mapping

解决方案


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

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

推荐阅读