#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 выпущен сейчас