Elasticsearch 入门(7):Elasticsearch 集成,SpringData 框架,ES的优化

Spring Data 框架集成

简介

Spring Data 是一个用于简化数据库、非关系型数据库、索引库访问,并支持云服务的开源框架。

  • 其主要目标是使得对数据的访问变得方便快捷,并支持 map-reduce 框架和云计算数据服务。
  • Spring Data 可以极大的简化 JPA(Elasticsearch)的写法,可以在几乎不用写实现的情况下,实现对数据的访问和操作。
  • 除了 CRUD 外,还包括如分页、排序等一些
    常用的功能。
  • Spring Data 的官网:https://spring.io/projects/spring-data

Spring Data 常用的功能模块如下:
在这里插入图片描述

Spring Data Elasticsearch 介绍

  • Spring Data Elasticsearch 基于 spring data API 简化 Elasticsearch 操作,将原始操作 Elasticsearch 的客户端 API 进行封装 。Spring Data 为 Elasticsearch 项目提供集成搜索引擎。
  • Spring Data Elasticsearch POJO 的关键功能区域为中心的模型与 Elastichsearch交互文档和轻松地编写一个存储索引库数据访问层。
  • 官方网站: https://spring.io/projects/spring-data-elasticsearch
    在这里插入图片描述

一、框架集环境成

  • 1. 创建MAVEN 文件在这里插入图片描述

  • 2. 修改 pom 文件,增加依赖关系

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
    http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
    	 <groupId>org.springframework.boot</groupId>
    	 <artifactId>spring-boot-starter-parent</artifactId>
    	 <version>2.3.6.RELEASE</version>
    	 <relativePath/>
     </parent>
     <groupId>com.atguigu.es</groupId>
     <artifactId>springdata-elasticsearch</artifactId>
    	 <version>1.0</version>
     <properties>
    	 <maven.compiler.source>8</maven.compiler.source>
    	 <maven.compiler.target>8</maven.compiler.target>
     </properties>
     <dependencies>
    	 <dependency>
    		 <groupId>org.projectlombok</groupId>
    		 <artifactId>lombok</artifactId>
    	 </dependency>
    	 <dependency>
    		 <groupId>org.springframework.boot</groupId>
    		 <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
    	 </dependency>
    	 <dependency>
    		 <groupId>org.springframework.boot</groupId>
    		 <artifactId>spring-boot-devtools</artifactId>
    		 <scope>runtime</scope>
    		 <optional>true</optional>
    	 </dependency>
    	 <dependency>
    		 <groupId>org.springframework.boot</groupId>
    	 	<artifactId>spring-boot-starter-test</artifactId>
    		 <scope>test</scope>
    	 </dependency>
    	 <dependency>
    		 <groupId>org.springframework.boot</groupId>
    		 <artifactId>spring-boot-test</artifactId>
    	 </dependency>
    	 <dependency>
    		 <groupId>junit</groupId>
    		 <artifactId>junit</artifactId>
    	 </dependency>
    	 <dependency>
    	 	<groupId>org.springframework</groupId>
    	 	<artifactId>spring-test</artifactId>
    	 </dependency>
     </dependencies>
    </project>
    
  • 3. 增加配置文件
    在 resources 目录中增加 application.properties 文件

    # es 服务地址
    elasticsearch.host=127.0.0.1
    # es 服务端口
    elasticsearch.port=9200
    # 配置日志级别,开启 debug 日志
    logging.level.com.atguigu.es=debug
    
  • 4. 主程序

    package com.atguigu.es;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    @SpringBootApplication
    public class SpringDataElasticSearchMainApplication {
         
     public static void 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,"org.elasticsearch.ElasticsearchStatusException: Elasticsearch exception Data too large"错误是由于数据大小超过了Elasticsearch的限制引起的[^1]。具体来说,错误信息中提到了"circuit_breaking_exception",这是Elasticsearch中的一种机制,用于防止节点过载。当数据大小超过了限制时,Elasticsearch会触发断路器并抛出此异常。 为了解决这个问题,可以尝试以下方法: 1. 增加Elasticsearch的限制:可以通过修改Elasticsearch的配置文件来增加限制。具体来说,可以增加`indices.breaker.total.limit`和`indices.breaker.request.limit`的值,以适应更大的数据量。但是需要注意,增加限制可能会导致节点负载过高,因此需要根据实际情况进行调整。 2. 减少数据量:如果数据量超过了Elasticsearch的限制,可以考虑减少数据量。可以通过以下方法来减少数据量: - 分批处理数据:将大数据集分成多个较小的批次进行处理,以避免超过限制。 - 压缩数据:使用压缩算法对数据进行压缩,以减少数据的大小。 - 删除不必要的字段:如果数据中包含不必要的字段,可以考虑删除这些字段以减少数据量。 3. 增加Elasticsearch集群的规模:如果以上方法无法解决问题,可以考虑增加Elasticsearch集群的规模,以提供更多的资源来处理大数据量。 请注意,具体的解决方法可能因为你的具体情况而有所不同。建议根据实际情况选择适合的方法来解决问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值