gpt4 book ai didi

spring-data - 如何使用 Spring Data 为 Elastic Search 设置 _id 字段

转载 作者:行者123 更新时间:2023-12-04 21:10:33 48 4
gpt4 key购买 nike

我已经使用 @Id 注释在我的实体中定义了一个字段。但是这个@Id 没有映射到 Elastic Search 文档中的 _id。 _id 值由 Elastic Search 自动生成。

我正在使用“org.springframework.data.annotation.Id;”。 spring-data-es 支持这个 @Id 吗?

我的实体:

import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
@Document(
indexName = "my_event_db", type = "my_event_type"
)
public class EventTransactionEntity {
@Id
private long event_pk;

public EventTransactionEntity(long event_pk) {
this.event_pk = event_pk;
}

private String getEventPk() {
return event_pk;
}
}

我的存储库类:
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
import com.softwareag.pg.pgmen.events.audit.myPackage.domain.EventTransactionEntity;
public interface EventTransactionRepository extends ElasticsearchRepository<EventTransactionEntity, Long> {
}

我的应用程序代码:
public class Application {
@Autowired
EventTransactionRepository eventTransactionRepository;

public void setEventTransactionRepository(EventTransactionRepository repo)
{
this.eventTransactionRepository = repo;
}

public void saveRecord(EventTransactionEntity entity) {
eventTransactionRepository.save(entity);
}

public void testSave() {
EventTransactionEntity entity = new EventTransactionEntity(12345);
saveRecord(entity);
}
}

ES 查询执行(保存后):
http://localhost:9200/my_event_db/my_event_type/_search

预期结果:
{
"hits": {
"total": 1,
"max_score": 1,
"hits": [
{
"_index": "my_event_db",
"_type": "my_event_type",
"_id": "12345",
"_score": 1,
"_source": {
"eventPk": 12345,
}
}]
}}

得到的结果:
{
"hits": {
"total": 1,
"max_score": 1,
"hits": [
{
"_index": "my_event_db",
"_type": "my_event_type",
"_id": "AVL7WcnOXA6CTVbl_1Yl",
"_score": 1,
"_source": {
"eventPk": 12345,
}
}]
}}

你可以看到我在结果中得到的 _id 是“_id”:“AVL7WcnOXA6CTVbl_1Yl”。但我希望 _id 字段等同于 eventPk 值。

请帮忙。谢谢。

最佳答案

问题出在你的 setter/getter 上,它应该是 public@Id 同类型 field :

public long getEvent_pk() {
return event_pk;
}

关于spring-data - 如何使用 Spring Data 为 Elastic Search 设置 _id 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35515830/

48 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com