Elasticsearch将在版本8中删除_type。我正在使用ElasticRepository开发一个Spring boot微服务,所以我想设置实体以便不使用它。据我所知,如果您不在@Document中隐式指定类型,它将采用小写的类名。如何指定不使用类型type = "_doc"?
弹性搜索: 7.5.1 Spring boot: 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;
}发布于 2020-03-06 01:09:06
Spring Boot 2.2.1和相应的Spring Data Elasticsearch 3.2.x使用Elasticsearch 6.8.5库。您将无法在Elasticsearch 7集群上使用此版本,6.8的客户端库与版本7中的服务器不兼容。
在应该在今年春天发布的spring Data Elasticsearch的下一个版本中,目标Elasticsearch版本是7.5 (我将在未来几天将其更新到7.6 )。在这里,我们弃用了用户放置类型信息的代码(例如,在@Document注释中),并且我们不再在对Elasticsearch的底层调用中使用它。因此,目前您可以将其留在注释中,等待下一个版本的到来。
一旦Elasticsearch 8发布,我们的Spring Data Elasticsearch的下一个版本将使用它,然后我们可能也会从我们的代码中删除它以进行清理。
https://stackoverflow.com/questions/60545804
复制相似问题