在 Mapping 里面,将 dynamic 参数设置成 strict 可以拒绝索引包含未知字段的文档。 此条 Tips 由 medcl 贡献。

求教默认分词设置问题

Elasticsearch | 作者 Hit_UncleYang | 发布于2017年01月04日 | 阅读数:8073

elasticsearch.yml文件中配置一个分词器,测试可以用来创建mapping但是如果配置中将这个分词设置为默认分词就不可以了,会报错将未知的分词设置为默认
已邀请:

medcl - 今晚打老虎。

赞同来自: Hit_UncleYang

默认全局分词的设置方式,使用模板,下例中的 ik_max_word 可换任意你的分词器:
DELETE _template/rtf


PUT _template/rtf
{
"template": "*",
"settings": { "number_of_shards": 1 },
"mappings": {
"_default_": {
"_all": {
"enabled": true
},
"dynamic_templates": [
{
"strings": {
"match_mapping_type": "string",
"mapping": {
"type": "text",
"analyzer":"ik_max_word",
"ignore_above": 256,
"fields": {
"keyword": {
"type": "keyword"
}
}
}
}
}
]
}
}
}

medcl - 今晚打老虎。

赞同来自:

es 什么版本呢,现在 es 不支持在配置文件里面设置默认 analyzer了

Hit_UncleYang

赞同来自:

2.4.1版本5以后才不支持

Hit_UncleYang

赞同来自:

我使用的2.4.1版本的,可以配置分词器,但是如果将配置的分词器设置为默认分词就不可以了,会提示为未知的分词器

Hit_UncleYang

赞同来自:

解决了,在声明analyzer的时候名称的位置改为default就可以了,直接就是默认的分词器

要回复问题请先登录注册