Spring data elasticsearch - индексируйте одно поле несколько раз

Я хочу проиндексировать одно поле (имя) несколько раз с помощью разных анализаторов (ngram и стандартный), чтобы я мог выполнять поиск, используя частичные или полные слова. Но мне не удалось найти поддержку Spring Data ElasticSearch для этого. Поскольку аннотация @Field не может быть повторена, как я могу добиться этого с помощью Spring Data?

0
0
687
1

Ответы 1

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

Другие вопросы по теме