spring-boot - spring-data-elasticsearch实体删除不推荐使用的类型

标签 spring-boot elasticsearch spring-data-elasticsearch

Elasticsearch将在版本8中删除_type。我正在使用ElasticRepository开发Spring Boot微服务,因此我想设置Entity以便不使用它。据我所知,如果您没有在@Document中隐式指定类型,它将使用小写形式的类名。
¿如何指定不使用类型,而不是type =“_doc”?

flex 搜寻:7.5.1
Spring 靴:2.2.1

package org.elastic.model;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.RequiredArgsConstructor;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;

@NoArgsConstructor
@AllArgsConstructor
@Data
@Builder
@SuppressWarnings("unused")

@Document(indexName = "basic_data",type = "_doc")
public class BasicData {

    @Id
    private String id;
    private String field1;
    private String field2;
}

最佳答案

Spring Boot 2.2.1和相应的Spring Data Elasticsearch 3.2.x使用Elasticsearch 6.8.5库。您将无法在Elasticsearch 7集群上使用此版本,因为6.8的客户端库与版本7中的服务器不兼容。

在应该在今年 Spring 发布的Spring Data Elasticsearch的下一版本中,目标Elasticsearch版本是7.5(我将在接下来的几天中将其更新为7.6)。此处,我们已弃用了用户在其中放置类型信息的代码(例如,在@Document批注中),并且不再在对Elasticsearch的基础调用中使用它。因此,暂时可以将其保留在注释中,以备下一版本使用。

Elasticsearch 8发布后,我们的下一版Spring Data Elasticsearch将使用该版本,然后我们也可能会将其从代码中删除以进行清理。

关于spring-boot - spring-data-elasticsearch实体删除不推荐使用的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60545804/

相关文章:

spring-boot - 如何将 @Transcational 与 spring-data-cosmosdb 一起使用?

java - Spring-boot-starter-mail 3.1.1 抛出 "Not provider of jakarta.mail.util.StreamProvider was found"

amazon-web-services - AWS Elasticsearch集群方法更新 `http.max_content_length`?

node.js - 弹性对象内部的Elasticsearch搜索数组

elasticsearch - 从 SearchQuery 对象获取字符串查询 (JSON)

elasticsearch - spring-data-elasticsearch-2.0.4.RELEASE startsWith不适用于非分析字段

java - HikariPool-1 - 无法执行连接的 isValid(),配置连接测试查询 (oracle.jdbc.driver.T4CConnection.isValid(I)Z)

java - 如何在spring-boot程序中根据条件访问mongoDB中的子文档

php - PHP-Elasticsearch:更新多个文档

java - 如何在 Spring-data-elasticsearch 中禁用页面查询