Elasticsearch java-api spring-数据不应索引空值字段
Elasticsearch java-api spring-data should not index null value fields
我将 elasticsearch java-api 与 spring-data 结合使用,但在索引文档时遇到问题。索引有效,但应跳过某些值。但首先我向您展示我的设置:
域对象:
@Document(indexName = "testindex", type = "message")
public class MessageObject {
@Id
private String unid;
private String message;
private String secondMessage;
private String thirdMessage;
...
getters & setters
...
}
接口:
public interface MessageObjectRepository extends ElasticsearchRepository<MessageObject, Long> {
}
服务:
@Component
public class MessageService {
@Autowired
private MessageObjectRepository repository;
public void addRegistrationObject(MessageObject msg) {
repository.save(msg);
}
}
所以....
如果我想索引一条只有两条消息集的消息。例如"message" 和 "thirdMessage" 我要离开 "secondMessage" null...
如果我检查我的索引,结果如下:
"hits": {
"total": 1,
"max_score": 1,
"hits": [
{
"_index": "testindex",
"_type": "message",
"_id": "00113B325ED357B7C1257E2D001D5B4B",
"_score": 1,
"_source": {
"unid": "00113B325ED357B7C1257E2D001D5B4B",
"message": "Hello",
"secondMessage": null,
"thirdMessage": "Third",
....
我的问题是,我不想在我的索引中有一个 null 值字段。
我找不到任何有用的东西...
是否可以在字段具有空值时直接忽略它? (不要把它放在索引中)所以我的索引文档看起来像这样:
"unid": "00113B325ED357B7C1257E2D001D5B4B",
"message": "Hello",
"thirdMessage": "Third",
没有
"secondMessage": null,
?
我不想要忽略空值字段的查询。我想要一个没有空值字段的索引。
您应该能够在 class 级别
指定以下 @JsonInclude
注释
@JsonInclude(value = JsonInclude.Include.NON_NULL)
@Document(indexName = "testindex", type = "message")
public class MessageObject {
...
}
我将 elasticsearch java-api 与 spring-data 结合使用,但在索引文档时遇到问题。索引有效,但应跳过某些值。但首先我向您展示我的设置:
域对象:
@Document(indexName = "testindex", type = "message")
public class MessageObject {
@Id
private String unid;
private String message;
private String secondMessage;
private String thirdMessage;
...
getters & setters
...
}
接口:
public interface MessageObjectRepository extends ElasticsearchRepository<MessageObject, Long> {
}
服务:
@Component
public class MessageService {
@Autowired
private MessageObjectRepository repository;
public void addRegistrationObject(MessageObject msg) {
repository.save(msg);
}
}
所以....
如果我想索引一条只有两条消息集的消息。例如"message" 和 "thirdMessage" 我要离开 "secondMessage" null...
如果我检查我的索引,结果如下:
"hits": {
"total": 1,
"max_score": 1,
"hits": [
{
"_index": "testindex",
"_type": "message",
"_id": "00113B325ED357B7C1257E2D001D5B4B",
"_score": 1,
"_source": {
"unid": "00113B325ED357B7C1257E2D001D5B4B",
"message": "Hello",
"secondMessage": null,
"thirdMessage": "Third",
....
我的问题是,我不想在我的索引中有一个 null 值字段。 我找不到任何有用的东西...
是否可以在字段具有空值时直接忽略它? (不要把它放在索引中)所以我的索引文档看起来像这样:
"unid": "00113B325ED357B7C1257E2D001D5B4B",
"message": "Hello",
"thirdMessage": "Third",
没有
"secondMessage": null,
?
我不想要忽略空值字段的查询。我想要一个没有空值字段的索引。
您应该能够在 class 级别
指定以下@JsonInclude
注释
@JsonInclude(value = JsonInclude.Include.NON_NULL)
@Document(indexName = "testindex", type = "message")
public class MessageObject {
...
}