spring data elasticsearch 配置搜索实体配置正确 但是分词器无法在elasticsearch加上 ,可能原因是 @Field 上的 type 必须用FieldType.Text ,如果不是会导致所有的 analyzer都无法配置上,原因是text才会使用分词,而Keyword之类的不会分词,所以导致elasticsearch putMappinge接口报错。
错误的写法

    @Field(type = FieldType.Keyword, searchAnalyzer = "ik_smart", analyzer = "ik_max_word")
    private String title;

正确的写法

    @Field(type = FieldType.Text  , searchAnalyzer = "ik_smart", analyzer = "ik_max_word")
    private String title;

新版本的初始化索引用的Api是下面这个 可以项目启动就初始化一下防止插入数据时候索引不存在而报错

elasticsearchRestTemplate.indexOps(XXXXX.class);
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐