首页 > 解决方案 > Spring Data ElasticSearch - 多次索引单个字段

问题描述

我想使用不同的分析器(ngram 和标准)多次索引单个字段(名称),以便我可以使用部分单词或完整单词进行搜索。但我找不到 Spring Data ElasticSearch 对此的支持。既然@Field注解不能重复,那么如何使用 Spring Data 来实现呢?

标签: spring-data-elasticsearch

解决方案


import org.springframework.data.elasticsearch.annotations.InnerField;
   import org.springframework.data.elasticsearch.annotations.MultiField;

        @MultiField(
                  mainField = @Field(type = FieldType.String),
                  otherFields = {
                      @InnerField(index = FieldIndex.not_analyzed, suffix = "<suffix name>", type =FieldType.String)
                  }
                )
        private String <fieldname>;

这样您可以使用不同的分析器多次存储相同的字段,请记住使用有意义的后缀名称来搜索该字段

欲了解更多信息,请参阅以下链接:

https://www.baeldung.com/spring-data-elasticsearch-queries


推荐阅读