问题描述:
我们现在 es 中已经索引很多类型数据,并且已经指定了 mapping。现在为了优化中文检索效果,增加了 ik 中文分词,那需要重建索引,在 mapping 中指定 analyer,但是每个 field 单独指定 analyzer 比较麻烦,所以想用动态模板匹配每个 string 类型的 field 的 analyzer,同时原有的 mapping 也存在(只是指定 field 的类型)。原本希望的方式是,field 的 datatype 沿用自己指定的,analyzer 通过动态模板动态匹配,不过实际效果没有用动态模板中的配置。
疑问:
所以请问下,如果存在自有 mapping ,会忽略动态模板中的配置么?如果是这个问题,还有简便的方法为所有 string 的 field 增加 analyzer 么?
我们现在 es 中已经索引很多类型数据,并且已经指定了 mapping。现在为了优化中文检索效果,增加了 ik 中文分词,那需要重建索引,在 mapping 中指定 analyer,但是每个 field 单独指定 analyzer 比较麻烦,所以想用动态模板匹配每个 string 类型的 field 的 analyzer,同时原有的 mapping 也存在(只是指定 field 的类型)。原本希望的方式是,field 的 datatype 沿用自己指定的,analyzer 通过动态模板动态匹配,不过实际效果没有用动态模板中的配置。
疑问:
所以请问下,如果存在自有 mapping ,会忽略动态模板中的配置么?如果是这个问题,还有简便的方法为所有 string 的 field 增加 analyzer 么?
3 个回复
zz_hello
赞同来自:
zqc0512 - andy zhou
赞同来自:
rochy - rochy_he
赞同来自:
不过默认情况下,索引重建的时候是不会同步 mapping 信息的
你只需要在索引模板里面设置好 string 类型字段的 mapping 信息即可生效了