首页 > 解决方案 > 为什么我不能在 AWS Elasticsearch 索引属性上定义别名数据类型?

问题描述

在我的开发环境中,我可以创建一个具有Alias数据类型属性的 Elasticsearch 索引。但是,在 AWS(Elasticsearch Service)中,当我尝试相同的操作时,它会失败。

我的开发 Elasticsearch 版本:6.4.2
AWS Elasticsearch 版本:6.3.1

我正在尝试使用 Elasticsearch 站点中的示例代码:https ://www.elastic.co/guide/en/elasticsearch/reference/current/alias.html

PUT trips
{
    "mappings": {
        "_doc": {
            "properties": {
                "distance": {
                    "type": "long"
                },
                "route_length_miles": {
                    "type": "alias",
                    "path": "distance"
                },
                "transit_mode": {
                    "type": "keyword"
                }
            }
        }
    }
}

这是我得到的:

{
    "error": {
        "root_cause": [
            {
                "type": "mapper_parsing_exception",
                "reason": "No handler for type [alias] declared on field [route_length_miles]"
            }
        ],
        "type": "mapper_parsing_exception",
        "reason": "Failed to parse mapping [_doc]: No handler for type [alias] declared on field [route_length_miles]",
        "caused_by": {
            "type": "mapper_parsing_exception",
            "reason": "No handler for type [alias] declared on field [route_length_miles]"
        }
    },
    "status": 400
}

标签: amazon-web-serviceselasticsearch

解决方案


显然,Alias 数据类型是在 6.4 版中引入的——在“次要”更新中添加数据类型有点奇怪。

以下链接提到“字段”别名,但我认为这也包括“属性”别名:

Elasticsearch 字段名称别名

https://www.elastic.co/guide/en/elasticsearch/reference/6.x/release-notes-6.4.0.html

我可以等待 AWS 将 Elasticsearch 升级到 6.4 版或找到解决方法。


推荐阅读