es

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

springboot官方提供的集成elasticsearch版本目前不支持ES6,https://github.com/spring-projects/spring-data-elasticsearch,所以只能自己集成了。

本来使用的Java Low Level REST Client,但是无奈各种问题。最后发现官方推荐使用Java High Level REST Client。然后使用这种方式集成成功。下面将步骤:

1.elasticsearch配置类

 

package com.zc.docsearch.config;

import org.apache.http.HttpHost;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestHighLevelClient;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.FactoryBean;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;


/**
 * @author zengchao
 *         elasticsearch spring-data 目前支持的最高版本为5.5 所以需要自己注入生成客户端
 *         这个三个接口可以使用  AbstractFactoryBean  通过继承重写方法代替
 *         Created by zengchao on 2018/4/19.
 */
@Configuration
public class ElasticsearchConfiguration implements FactoryBean<RestHighLevelClient>, InitializingBean, DisposableBean {
    private static final Logger LOG = LoggerFactory.getLogger(ElasticsearchConfiguration.class);

    @Value("${spring.data.elasticsearch.cluster-nodes}")
    private String clusterNodes;

    private RestHighLevelClient restHighLevelClient;

    /**
     * 控制Bean的实例化过程
     *
     * @return
     * @throws Exception
     */
    @Override
    public RestHighLevelClient getObject() throws Exception {
        return restHighLevelClient;
    }

    /**
     * 获取接口返回的实例的class
     *
     * @return
     */
    @Override
    public Class<?> getObjectType() {
        return RestHighLevelClient.class;
    }

    @Override
    public void destroy() throws Exception {
        try {
            if (restHighLevelClient != null) {
                restHighLevelClient.close();
            }
        } catch (final Exception e) {
            LOG.error("Error closing ElasticSearch client: ", e);
        }
    }

    @Override
    public boolean isSingleton() {
        return false;
    }

    @Override
    public void afterPropertiesSet() throws Exception {
        restHighLevelClient = buildClient();
    }

    private RestHighLevelClient buildClient() {
        try {
            restHighLevelClient = new RestHighLevelClient(
                    RestClient.builder(
                            new HttpHost(
                                    clusterNodes.split(":")[0],
                                    Integer.parseInt(clusterNodes.split(":")[1]),
                                    "http")));
        } catch (Exception e) {
            LOG.error(e.getMessage());
        }
        return restHighLevelClient;
    }
}

2.application.properties

 

spring.data.elasticsearch.cluster-nodes=112.74.63.235:9200

3.测试

 

@Test
public void getIndexTest(){
   GetRequest request=new GetRequest("store","product","4");
   try {
           GetResponse response = client.get(request);
           System.out.println(response);
       } catch (IOException e) {
      e.printStackTrace();
   }
}

4.pom.xml 请根据自己版本修改

 

<properties>
    <elasticsearch.version>6.3.2</elasticsearch.version>
</properties>
<dependencies>

    <dependency>
        <groupId>org.elasticsearch</groupId>
        <artifactId>elasticsearch</artifactId>
        <version>${elasticsearch.version}</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>org.elasticsearch.client</groupId>
        <artifactId>elasticsearch-rest-high-level-client</artifactId>
        <version>${elasticsearch.version}</version>
    </dependency>
    <dependency>
        <groupId>org.elasticsearch.client</groupId>
        <artifactId>elasticsearch-rest-client</artifactId>
        <version>${elasticsearch.version}</version>
    </dependency>
    <dependency>
        <groupId>org.elasticsearch.client</groupId>
        <artifactId>elasticsearch-rest-client-sniffer</artifactId>
        <version>${elasticsearch.version}</version>
    </dependency>

5.官方链接

官方建议:https://www.elastic.co/guide/en/elasticsearch/client/java-api/6.2/java-api.html

Java High Level REST Client API文档https://www.elastic.co/guide/en/elasticsearch/client/java-rest/6.2/java-rest-high.html

ElasticSearch——全文搜索引擎 一、为什么需要全文搜索引擎? 首先先来了解一个概念,在我们生活中一般来说有两种数据:结构化数据、非结构化数据 结构化数据:指具有固定格式或有限长度的数据,如数据库,元数据等。 非结构化数据: 非结构化数据又可称为全文数据,指不定长或无固定格式的数据,如邮件,word文档等。 对于结构化数据我们可以直接从数据库查询,而对于非结构化的数据此时就要用到全文检索的方式查询,比如对一个文档或者网页中的内容文本每个词建立一个索引,把这些非结构化的变成结构化的方式然后来查询。 全文搜索引擎百度百科定义:全文搜索引擎是目前 阅读详情

相关推荐

828华为云征文|使用Flexus X实例集成ES搜索引擎

Flexus X实例是华为云推出的一款面向中小企业和开发者的柔性算力云服务器。Flexus X实例作为新一代云服务器,旨在为用户提供更加灵活和高效的计算资源管理方式。它具备多项独特优势,如柔性算力设计、智能感知业务负载、可灵活自定义vCPU内存配比等,以满足多样化的业务需求。包含有:柔性算力设计、智能感知业务负载、可灵活自定义vCPU内存配比、高性能、丰富的公共镜像、智能识别和全面的安全防护等特点,可以说是非常全面了

qq_53317005的博客 2094

详解最热门搜索引擎——ES

一、产生背景 ​ 互联网发展早期的时候,对于一般的公司储存的数据量不是那么的大,所以很多公司更倾向于使用数据库去存储和查询数据,如:现在去MySQL中查询数据,大概的查询方式就是:select * from table where filed like “%XXX%”或者其他方式,但是,如果我们在查询的时候没有用到或命中数据库建立的索引话,则会扫描整张表,即便是MySQL做过单表查询能力优化,但是他的极限也只在400万左右,且还会经常出现超时现象,让后为了解决这些问题,。很多公司就开始对数据库进

会编程的小郑 1万+

Elasticsearch搜索引擎

本篇博客系统地介绍了Elasticsearch 7.14.0在windows环境下安装、基本使用、Springboot集成Elasticsearch以及ELK搭建。

weixin_44490884的博客 1498

Linux安装elasticsearch搜索引擎并配置

`-v es-plugins:/usr/share/elasticsearch/plugins`:挂载逻辑卷,绑定es的插件目录。- `-v es-data:/usr/share/elasticsearch/data`:挂载逻辑卷,绑定es的数据目录。- `-v es-logs:/usr/share/elasticsearch/logs`:挂载逻辑卷,绑定es的日志目录。- `--network es-net` :加入一个名为es-net的网络中,与elasticsearch在同一个网络中。

m0_74939895的博客 1765

ES(elasticsearch)搜索引擎 结合java 使用

ES(elasticsearch)搜索引擎 结合java 使用 官方文档地址: https://www.elastic.co/guide/en/elasticsearch/client/java-rest/7.x/java-rest-high.html 重点概念: 文件索引块是因为使用了倒排索引 倒排索引: 例如 文件a 中有 单词 java php ,文件b中有 java php python ,文件c 中有java , python 那么 单词对应的文件为: java :a ,b,c

qq_42011565的博客 4757

ElasticSearch 认识和安装ES

es是一个分布式、高性能的搜索引擎,广泛应用于大数据检索、日志分析、实时搜索等场景。与传统数据库相比,ElasticSearch 对于大规模数据的处理具有显著优势,特别是模糊查询、分词分析、语义理解等复杂搜索任务。本章内容主要是介绍了 Elasticsearch 的基础知识、它的起源以及如何安装和配置 Elasticsearch 和 Kibana。安装过程中使用 Docker 是一种方便快捷的方式,可以轻松启动单机模式的 Elasticsearch 服务,并结合 Kibana 进行可视化操作。

2301_80093566的博客 1739

ES 分布式搜索引擎【一】

分布式搜索引擎,elasticsearch、kibana、IK分词器的安装与使用。

m0_52861684的博客 1650

分布式搜索引擎之elasticsearch基本使用3

因为我们还需要部署kibana容器,因此需要让es和kibana容器互联。

weixin_43956070的博客 1383

分布式搜索引擎ES-elasticsearch入门

正排索引:相当于文档中的一条条记录;例子:汉语值得学习;汉语是语言;汉语学习视频;倒排索引:起源于实际应用中需要根据属性的值来查询记录。这种索引表的每一项都包括一个属性值和包含该属性值得各个记录地址。由于不是根据记录来确定属性,而是根据属性来确定记录的位置。可以记录文档的ids,词频跟位置例子:汉语值得学习;汉语是语言;汉语学习视频;单词文档ids词频TF;位置POS汉1,2,3语1,2,3值得11:1:<3>学习1,3是21:1;<3>言2。

TOMORROW6COME的博客 2014

elasticsearch(ES)简介及安装-----笔记

ES是一款非常强大的开源搜索引擎,可以帮助我们从海量数据中快速找到需要的内容。ES结合kibana、Logstash、Beats,也就是elastic stack(ELK)。被广泛应用在日志数据分析、实时监控等领域。elasticsearch是elastic stack的核心,负责存储、搜索、分析数据。kibana负责数据可视化,elasticsearch负责存储、计算、搜索数据,logstash\Beats负责数据抓取。elasticsearch底层实现是Lucene计术。

weixin_44846205的博客 2349

ElasticSearch全文搜索引擎

Lucene是apache下的一个开源的全文检索引擎工具包(一堆jar包)。它为软件开发人员提供一个简单易用的工具包(类库),以方便的在小型目标系统中实现全文检索的功能。Lucene适用于中小型项目 ,ES适用于中大型项目(它底层是基于lucene实现的)虽然全文搜索领域,Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。但是,Lucene只是一个库。

2201_75971147的博客 3202

分布式搜索引擎之elasticsearch基本使用1

什么是elasticsearch?一个开源的分布式搜索引擎,可以用来实现搜索、日志统计、分析、系统监控等功能什么是elastic stack(ELK)?是以elasticsearch为核心的技术栈,包括beats、Logstash、kibana、elasticsearch什么是Lucene?是Apache的开源搜索引擎类库,提供了搜索引擎的核心API分词器的作用是什么?创建倒排索引时对文档分词用户搜索时,对输入的内容分词IK分词器有几种模式?ik_smart:智能切分,粗粒度。

weixin_43956070的博客 1253

分布式搜索引擎 elasticsearch

分布式搜索引擎 elasticsearch 第一部分 1.初识elasticsearch 1.1.了解ES 1.1.1.elasticsearch的作用 elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中快速找到需要的内容 例如: 在GitHub搜索代码 在电商网站搜索商品 在百度搜索答案 在打车软件搜索附近的车 1.1.2.ELK技术栈 elasticsearch结合kibana、Logstash、Beats,也就是elasti

KYGALYX的博客 3823

Elasticsearch ES 数据模型

Elasticsearch使用文档(Document)作为数据存储的基本单元,每个文档实际上是一条JSON格式的数据,它包含了一组键值对(字段和值)。文档是 Elasticsearch 索引中的一条记录,而索引是文档集合的容器。每个文档都会被分配一个ID,且文档的所有字段和数据都以JSON格式存储。与传统关系型数据库中的行不同,Elasticsearch中的文档不需要预先定义固定的表结构。在Elasticsearch中,映射定义可以在创建索引时指定,也可以在索引创建后动态地进行调整(但有一定的限制)。

Flying_Fish_roe的博客 1896

ES搜索引擎技术

目前的工作中库很多业务普通关系型数据已经不能满足业务需求,因此很多场景需要用到搜索引擎技术,下面介绍一下ElasticSearch。

bigchen_1的博客 840

Java集成Easy-Es实现ElasticSearch(ES)的数据搜索引擎操作?看这一篇就够了!保姆级别逐步教学!

集成前三问: 一、这个`ElasticSearch`是什么? >通俗来讲ElasticSearch是一个用于大量数据分析的搜索引擎,但是我个人觉得他更应该叫搜索服务器。因为他不仅仅是一个搜索工具,同时将数据会保存到本地的ElasticSearch存储内。

欢迎来到快乐星球 1962
上一篇: ceph Monitor clock skew detected
hpuly
博客等级 码龄10年 0粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值