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

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐