Upgrading to Elasticsearch 5.2



我有以下遗留映射代码,在 ES 1.7 中有效,但在 5.2 中失败。失败的事情multi_field不受支持以及路径。文档提到这些字段已被删除,但除了建议使用copy_to之外,未能提供补救措施。有人可以对此提供更多细节。

{
"sample": {
    "_parent": {
        "type": "security"
    },
    "properties": {
        "securityDocumentId": {
            "type": "string",
            "index": "not_analyzed",
            "include_in_all": false
        },
        "id": {
            "type": "multi_field",
            "path": "full",
            "fields": {
                "indexer_sample_id": {
                    "type": "string"
                },
                "id": {
                    "type": "string",
                    "include_in_all": false
                }
            }
        },
        "sampleid": {
            "type": "multi_field",
            "path": "just_name",
            "fields": {
                "sampleid": {
                    "type": "string",
                    "analyzer": "my_analyzer"
                },
                "sample.sampleid": {
                    "type": "string",
                    "analyzer": "my_analyzer"
                },
                "sample.sampleid.sort": {
                    "type": "string",
                    "analyzer": "case_insensitive_sort_analyzer"
                },
                "sample.sampleid.name.autocomplete": {
                    "type": "string",
                    "analyzer": "autocomplete"
                }
            }
        },

path 选项的默认值是 full ,因此您可以省略它,因为它在 2.0 中已弃用。just_name path值不再存在,您必须通过其完整路径名引用所有字段。多字段可以非常简单地重写:

{
"sample": {
    "_parent": {
        "type": "security"
    },
    "properties": {
        "securityDocumentId": {
            "type": "keyword",
            "include_in_all": false
        },
        "id": {
            "type": "text",
            "fields": {
                "indexer_sample_id": {
                    "type": "text"
                },
                "id": {
                    "type": "text",
                    "include_in_all": false
                }
            }
        },
        "sampleid": {
            "type": "text",
            "fields": {
                "sampleid": {
                    "type": "text",
                    "analyzer": "my_analyzer"
                },
                "sample.sampleid": {
                    "type": "text",
                    "analyzer": "my_analyzer"
                },
                "sample.sampleid.sort": {
                    "type": "text",
                    "analyzer": "case_insensitive_sort_analyzer"
                },
                "sample.sampleid.name.autocomplete": {
                    "type": "text",
                    "analyzer": "autocomplete"
                }
            }
        },

请注意,我不确定id子字段的有用性和附加值

最新更新