弹性搜索:[_all]的Mapper与其他类型的现有映射冲突

时间:2017-05-22 15:34:09

标签: python elasticsearch

我正在尝试创建边缘ngram索引并映射文档。我正在使用python elasticsearch api来做到这一点。

这是我的索引体。

body = {
        "settings": {
            "analysis": {
                "filter": {
                    "ngram_filter": {
                        "type": "edge_ngram",
                        "min_gram": 3,
                        "max_gram": 20
                    }
                },
                "analyzer": {
                    "ngram_analyzer": {
                        "type": "custom",
                        "tokenizer": "standard",
                        "filter": [
                            "lowercase",
                            "ngram_filter"
                        ]
                    }
                }
            }
        }
    }

这是我对文档的映射。

user_mapping = {
        "_all": {
            "type": "string",
            "analyzer": "ngram_analyzer",
            "search_analyzer": "standard"
        },
        'properties': {
            'id': {
                'type': 'long',
                'include_in_all': False
            },
            'uuid': {
                'type': 'string',
                'include_in_all': False
            },
            'email': {
                'type': 'string',
                'include_in_all': True,
                "term_vector": "yes"
            },
            'screen_name': {
                'type': 'string',
                "include_in_all": True,
                "term_vector": "yes"
            },
            'display_name': {
                'type': 'string',
                "include_in_all": True,
                "term_vector": "yes"
            },
            'first_name': {
                'type': 'string',
                'include_in_all': True,
                'term_vector': 'yes'
            },
            'last_name': {
                'type': 'string',
                "include_in_all": True,
                "term_vector": "yes"
            },
            'lat': {
                'type': 'long',
                "include_in_all": False
            },
            'lon': {
                'type': 'long',
                "include_in_all": False
            },
            'public_status': {
                'type': 'string',
                "include_in_all": True,
                "term_vector": "yes"
            },
            'score': {
                'type': 'long',
                'include_in_all': False
            },
            'groups': {
                'type': 'string',
                'include_in_all': False
            },
            'created_at': {
                'type': 'date',
                'include_in_all': False
            }
        }
    }

当我尝试映射时,我得到了这个例外。不确定我的地图有什么问题。

{u'status':400,u'error':{u'root_cause':[{u'reason':u'Mapper for [_all]与其他类型的现有映射冲突:\ n [mapper [_all] ]具有不同的[analyzer],mapper [_all]被多种类型使用。将update_all_types设置为true以跨所有类型更新[search_analyzer]。映射器[_all]由多种类型使用。将update_all_types设置为true以更新所有类型的[search_quote_analyzer]。]',u'type':u'illegal_argument_exception'}],u'type':u'illegal_argument_exception',u'reason':u'Mapper for [_all]与其他类型的现有映射冲突:\ n [mapper [_all]具有不同的[analyzer],mapper [_all]由多种类型使用。将update_all_types设置为true以跨所有类型更新[search_analyzer]。映射器[_all]由多种类型使用。将update_all_types设置为true以更新所有类型的[search_quote_analyzer]。]'}}

0 个答案:

没有答案