我正在尝试创建边缘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]。]'}}