spring-data-elasticsearch 实体删除已弃用的类型

spring-data-elasticsearch entity removing deprecated type

Elasticsearch 将在版本 8 中删除 _type。我正在开发一个 Spring 启动微服务,使用 ElasticRepository,所以我想设置 Entity 以便不使用它。据我所知,如果不在@Document 中隐式指定类型,它将采用小写的 class 名称。 ¿如何指定不使用类型而不是 type = "_doc"?

弹性搜索: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 Data Elasticsearch应该在这个spring发布,目标Elasticsearch版本是7.5(我会在接下来的几天更新到7.6)。我们已经弃用了用户放置类型信息的代码(例如在 @Document 注释中),我们不再在对 Elasticsearch 的底层调用中使用它。所以暂时可以把它留在注释里,等下个版本来。

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