elasticsearch 注解(@Field、@MultiField)失效


elasticsearch 注解(@Field、@MultiField)失效

********************************

相关说明

索引文档,需要对字段进行自定义映射

@Data
@Document(indexName = "people3",type = "_doc")
public class People {

    @Id
    private Integer id;

    @Field(type = FieldType.Keyword)
    private String name;

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

    @Field(type = FieldType.Text,analyzer = "hanlp")
    private String description2;

    @Field(type = FieldType.Text,analyzer = "pinyin")
    private String description3;

    @MultiField(mainField = @Field(type = FieldType.Text,analyzer = "ik_smart"),
            otherFields = @InnerField(suffix = "inner", type = FieldType.Text, analyzer = "pinyin"))
    private String description4;

    @MultiField(mainField = @Field(type = FieldType.Text,analyzer = "hanlp"),
            otherFields = @InnerField(suffix = "inner",type = FieldType.Text,analyzer = "pinyin"))
    private String description5;
}

默认情况下,springboot data elasticsearch使用如下映射方式,自定义映射不起作用

               

               

                 

********************************

解决办法:使用elasticsearchRestTemplate手动添加映射

    @Resource
    private ElasticsearchRestTemplate elasticsearchRestTemplate;

    @PostConstruct
    public void start(){
        elasticsearchRestTemplate.putMapping(People.class);
    }

添加此操作后,自定义映射生效

                

                

发布了320 篇原创文章 · 获赞 91 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_43931625/article/details/104010838
今日推荐