Spring Data Elasticsearch не записывает нулевые значения во вставленные документы

#java #spring #elasticsearch #spring-data #spring-data-elasticsearch

#java #spring #elasticsearch #spring-данные #spring-data-elasticsearch

Вопрос:

У меня есть объект ES:

 @Document(indexName = "company")
public class CompanyEntity {

  @MultiField(
      mainField = @Field(type = Text, name = "alias_name"),
      otherFields = {@InnerField(suffix = "keyword", type = Keyword, nullValue = "NULL")})
  @Nullable
  private String aliasName;

 ...
}
  

Если я создаю объект CompanyEntity и не указываю псевдоним, я ожидаю, что Spring Data Elasticsearch сохранит нулевые значения для свойств объекта, которые являются Nullable . Но, похоже, это не так, даже если я указываю значение для nullValue в InnerField аннотации.

Я уверен, что неправильно настроил аннотацию или что-то в этом роде, но мне бы очень хотелось использовать null_value параметр Elasticsearch, как описано здесь. Но сначала мне нужно понять, как заставить SDE сохранять нулевые значения.

Спасибо за ваше время!

Ответ №1:

Поскольку значения null нельзя индексировать или искать, они обычно не сохраняются Spring Data Elasticsearch, что уменьшает размер индексируемого документа.

Тем не менее, возможность сохранения нулевых значений была добавлена с этой проблемой и будет содержаться в версии 4.1.RC1, которая должна быть выпущена завтра.

Редактировать: 4.1.0.RC1 выпущен сейчас