架构师成长记_第八周_21_springboot整合elasticsearch(代码片段)

_大木_ _大木_     2022-12-12     490

关键词:

文章目录

Springboot 整合 elasticsearch

1. 创建es模块


2. 在es的模块下引入依赖

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
            <version>2.2.2.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

    </dependencies>

PS: 改版本对应的es是 6.4.3, 故我们集群ES的配置需要下调为 6.4.3. (或者提升这里的版本)


es的安装步骤参考这里

对应安装es的ik分词器版本步骤参考这里

es集群搭建

3. 创建 yml 配置文件

spring:
  datasource:                                           # 数据源的相关配置
    type: com.zaxxer.hikari.HikariDataSource          # 数据源类型:HikariCP
    driver-class-name: com.mysql.jdbc.Driver            # mysql驱动
    url: jdbc:mysql://localhost:3306/foodie-shop-dev?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true
    username: root
    password: 210374520
  data:
    elasticsearch:
      cluster-nodes: 192.168.92.148:9300  # PS:后端对接的接口号为9300, es为9200
      cluster-name: es6

4. 创建启动类

package com.beyond;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application 
    public static void main(String[] args) 
        SpringApplication.run(Application.class,args);

    


5. 运行报错 (是由于无netty配置引起的错误)

org.springframework.beans.factory.BeanCreationException: 
Error creating bean with name 'elasticsearchClient' defined in class path resource 
[org/springframework/boot/autoconfigure/data/elasticsearch/ElasticsearchAutoConfiguration.class]: 
Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: 
Failed to instantiate [org.elasticsearch.client.transport.TransportClient]:
Factory method 'elasticsearchClient' threw exception; 
nested exception is java.lang.IllegalStateException: 
availableProcessors is already set to [4], rejecting [4]

6. 解决该问题

创建ESConfig类

package com.beyond;

import org.springframework.context.annotation.Configuration;

import javax.annotation.PostConstruct;

@Configuration
public class ESConfig 

    /**
     * 解决netty引起的issue
     */
    @PostConstruct
    void init() 
        System.setProperty("es.set.netty.runtime.available.processors", "false");
    



架构师成长记_第八周_06_es-文档的基本操作

文章目录ES-文档的基本操作:添加文档与自动映射1.添加文档2.添加多个文档ES-文档的基本操作:添加文档与自动映射1.添加文档2.添加多个文档 查看详情

架构师成长记_第八周_17_es-深度分页

ES-深度分页PS:因为使用from+size的方式只可以搜索小于等于10000的数据,这个是ES做的一个性能防护,防止用户搜索过深而导致的系统性能下降.1.查看深度分页设置2.修改深度分页设置,提升搜索量3.再次搜索之前的9999的分类搜索量 查看详情

架构师成长记_第八周_18_es-批量查询(代码片段)

文章目录ES-批量查询1.之前使用的批量查询方式2.使用_mget进行批量查询3.二者的区别ES-批量查询1.之前使用的批量查询方式GET:http://192.168.92.140:9200/shop/_doc/_search"query":"ids":"type":"_doc","values":["100 查看详情

架构师成长记_第八周_18_es-批量查询(代码片段)

文章目录ES-批量查询1.之前使用的批量查询方式2.使用_mget进行批量查询3.二者的区别ES-批量查询1.之前使用的批量查询方式GET:http://192.168.92.140:9200/shop/_doc/_search"query":"ids":"type":"_doc","values":["100 查看详情

架构师成长记_第八周_18_es-滚动搜索(代码片段)

ES-滚动搜索PS:滚动搜索是基于快照的方式,所以在搜索的时候,如果用户进行更新数据,数据是不会被滚动搜索加载到的.1.首次滚动搜索.POST:http://192.168.92.140:9200/shop/_search?scroll=1m"query":"match_all":,"sort":["_doc"... 查看详情

架构师成长记_第八周_18_es-滚动搜索(代码片段)

ES-滚动搜索PS:滚动搜索是基于快照的方式,所以在搜索的时候,如果用户进行更新数据,数据是不会被滚动搜索加载到的.1.首次滚动搜索.POST:http://192.168.92.140:9200/shop/_search?scroll=1m"query":"match_all":,"sort":["_doc"... 查看详情

架构师成长记_第八周_20_elasticsearch集群构建(代码片段)

文章目录Elasticsearch集群构建1.先进行克隆三台服务器2.搭建es集群2.1分别对三台服务器(es01,es02,es03)做如下操作2.2操作三台服务器(es01,es02,es03节点)3.查看配置信息`moreelasticsearch.yml|grep^[^#]`4.启动ES集群Elasticsearch集群构建1.先进... 查看详情

架构师成长记_第八周_20_elasticsearch集群构建(代码片段)

文章目录Elasticsearch集群构建1.先进行克隆三台服务器2.搭建es集群2.1分别对三台服务器(es01,es02,es03)做如下操作2.2操作三台服务器(es01,es02,es03节点)3.查看配置信息`moreelasticsearch.yml|grep^[^#]`4.启动ES集群Elasticsearch集群构建1.先进... 查看详情

架构师成长记_第八周_22_logstash数据同步(代码片段)

文章目录1.logstash简介PS:2.logstash安装2.1(前提是安装好jdk)上传logstash,mysql驱动2.2logstash同步配置2.3启动logstashPS:1.logstash简介Logstash是一个开源数据收集引擎,具有实时管道功能。Logstash可以动态地将来自不同数据源的数据统一起... 查看详情

架构师成长记_第八周_05_mappings自定义创建映射(代码片段)

文章目录mappings自定义创建映射1.创建索引如下2.测试我们的索引是否可以分词(标准分词器不识别中文)进行内容分析3.为该索引新增数据类型1.新增id和age字段(long类型和integer类型,==没有int哦==)2.新增money1和money2字段(dou... 查看详情

架构师成长记_第八周_19_es-批量操作bulk(代码片段)

文章目录ES-批量操作bulk1.bulk之create(批量新增)1.1第一种写法1.2第二种写法PS:批量新增注意:2.bulk之index(覆盖新增)3.bulk之update(批量更新)4.bulk之delete(批量删除)5.bulk之批量操作综合PS:ES-批量操作bulk1.bulk之create(批量新增)1.1第一种写法... 查看详情

架构师成长记_第八周_19_es-批量操作bulk(代码片段)

文章目录ES-批量操作bulk1.bulk之create(批量新增)1.1第一种写法1.2第二种写法PS:批量新增注意:2.bulk之index(覆盖新增)3.bulk之update(批量更新)4.bulk之delete(批量删除)5.bulk之批量操作综合PS:ES-批量操作bulk1.bulk之create(批量新增)1.1第一种写法... 查看详情

架构师成长记_第八周_08_es-文档的基本操作(代码片段)

文章目录ES-文档的基本操作:查询方式一:根据_id进行查询方式二:_serach查询所有记录方式三:定制查询某些字段方式四:查询该索引下所有字段的定制的字段高效查询某个文档是否存在(这里只占用了87B传输大小)ES-文档的基本操作:查... 查看详情

架构师成长记_第八周_01_分布式搜索引擎elasticsearch快速入门(代码片段)

文章目录分布式搜索引擎ElasticSearch快速入门1.搜索引擎的对比(LucenevsSolrvsElasticsearch)1.1Lucene1.2Solr1.3Elasticsearch([官网描述](https://www.elastic.co/cn/what-is/elasticsearch))2.ES核心术语2.1索引库index(相当于数据库中的表)2.2类型type(相当于数据 查看详情

架构师成长记_第八周_07_es-文档的基本操作(代码片段)

文章目录ES-文档的基本操作:新增与修改1.删除2.修改方式一:局部修改方式二:全量修改3.证明删除操作不是物理删除ES-文档的基本操作:新增与修改1.删除数据库中是根据主键进行删除,ES中也是一样,他可以根据我们的_id进行操作.这... 查看详情

架构师成长记_第八周_10_es-分词与五种内置分词器(代码片段)

文章目录ES-分词PS:1.全局分析方式(_analyze)2.指定字段分析方式(索引名/_analyze)ES-五种内置分词器介绍1标准分词器standard2非字母分词器simple3空格拆分分词器whitespace4智能化分词器(会去掉英文中无意义的词a/an/is/the等)stop5关键字分词... 查看详情

架构师成长记_第八周_02_centos安装分布式搜索引擎elasticsearch(代码片段)

文章目录ElasticSearch安装1.上传elasticsearch包到我们的centos(我这里是140节点)2.解压并且移动elasticsearch文件夹3.进入elasticsearch进行配置4.由于root用户不能使用ES,所以需要创建一个新的用户来使用ES5.运行启动ES6.测试,浏览器访问7.由于e... 查看详情

架构师成长记_第八周_13_dsl搜索-查询所有内容与分页查询(代码片段)

文章目录DSL查询所有内容与分页查询1.DSL查询所有内容2.DSL查询部分字段内容2.DSL查询进行分页查询前7条数据查询第10条之后的10条数据DSL查询所有内容与分页查询1.DSL查询所有内容"query":"match_all":2.DSL查询部分字段内容... 查看详情