当前位置: 首页 > 知识库问答 >
问题:

Spring数据弹性搜索实体去除不建议使用的类型

令狐晟
2023-03-14

Elasticsearch将删除版本8中的_类型。我正在使用ElasticRepository开发一个Spring boot微服务,所以我想设置实体以避免使用它。据我所知,如果不在@Document中隐式指定类型,它将采用小写的类名。?如何指定不使用类型,而使用type=“\u doc”?

弹性搜索: 7.5.1Spring启动: 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;
}

共有1个答案

乐刚毅
2023-03-14

Spring Boot 2.2.1和相应的Spring数据Elasticsearch 3.2。x使用Elasticsearch 6.8.5库。您将无法将此版本与Elasticsearch 7群集一起使用,6.8的客户端库与版本7中的服务器不兼容。

在今年Spring发布的下一个版本的Spring Data Elasticsearch中,目标Elasticsearch版本是7.5(我将在接下来的几天里更新到7.6)。在那里,我们已经不建议使用用户放置类型信息的代码(例如在@文档注释中),并且我们不再在对Elasticsearch的底层调用中使用它。因此,目前您可以将它保留在下一个版本的注释中。

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

 类似资料:
  • 我已经能够通过使用cURL获得建议(参见代码块)。但是我需要在我的代码中这样做,这样我就可以使用我的自定义endpointTOMCAT_ROOT/suggest?q=el。如何使用Spring数据创建查询,以在Java代码中获得相同的结果。 我的es映射: 我的POJO: 我的问题是: 我的查询结果:

  • 升级到Spring boot 2.3和Spring data elasticsearch 4.0.9后的问题。我有这样的文档: 这在spring data 3.0中与Jackson配合得很好,但升级到4.0后,Jackson不再可用,现在我收到了一个来自spring的实例化异常,无法实例化URL对象。 例外情况: 任何关于解决方案的想法都将受到赞赏。

  • 在弹性搜索中,我将记录存储在命名空间和主题中。这些是简单的对象,只有(string)和。 我想通过自动完成搜索名称,为此我试图使用索引搜索。 ElasticSearch::Transport::Transport::Transport::Errors::BadRequest:[400]{“error”:{“root_cause”:[{“type”:“illegal_argument_excepti

  • 我使用Spring boot 2.0.1。RELEASE/Spring数据Elasticsearch 3.0.6。我用@Document annotation注释我的域类,我有一个字段如下: 如您所见,我需要将字段类型设置为IP_范围(存在于弹性搜索引擎数据类型中),但不存在于FieldType enum中。 我想创建这个文件索引通过Elasticsearch chTemplate.create索

  • 我有一个Spring Boot应用程序,我想在其中单独使用弹性搜索2.2.0(而不是嵌入式服务器),我想使用Spring Data弹性搜索,那么Spring Data支持的弹性搜索版本是什么,我如何配置它以连接到运行在localhost:9200中的弹性搜索实例? 实际上,我尝试在application.properties文件中添加以下选项: 后来,我创建了这个配置类: 我得到了这个StackT

  • 我有一个设计糟糕的文档结构: 我想从上面的文档中检索标题、Fach和代码。 多谢了。