简单说说ES

ES是ELK中的E,即elasticsearch全文搜索引擎,它的英文原意是富有弹性的搜索.它的功能类似一个数据库,能高效的从大量数据中搜索匹配指定关键字的内容,它也将数据保存在硬盘中.它本质上可以理解为一个java项目,使用它进行数据的增删改查就是访问这个项目的控制器方法(url路径).es和redis/mysql一样,不仅服务于java语言,其他语言也可以使用.

ES的底层技术

ES使用了java的一套名为Lucene的API,这个API提供了全文搜索引擎核心操作的接口,相当于搜索引擎的核心支持,ES在Lucene的基础上进行完善,实现了开箱即用的搜索引擎软件.

市面上和ES功能类似的软件还有Solr/Mongodb

为什么需要ES

所有关系型数据库(mysql/mariadb/oracle/db2等)都有一个缺点:数据库模糊查询效率严重低下.

ES就是解决这个问题的

测试证明一张千万级别的数据表进行模糊查询需要20秒以上

ES进行优化后,从同样数据量的ES中查询相同条件数据,效率能够提高100倍以上.

ES运行原理

要想使用ES提升模糊查询效率,首先要将数据库中的数据复制到ES中,在新增数据到ES的过程中,ES可以对指定的列进行分词索引保存在索引库中,形成倒排索引结构.

ES的数据结构

ES启动后,ES服务可以创建多个index(索引),index可以理解为数据库中表的概念

一个index可以创建多个保存数据的document(文档),一个document理解为数据库中的一行数据 , 一个document中可以保存多个属性和属性值,对应数据库中的字段(列)和字段值

操作ES

原生状态下,我们使用JDBC连接数据库,因为代码过于繁琐,所以改为使用Mybatis框架;

ES也同理,在原生状态下我们java代码需要使用socke访问ES,但是也过于繁琐,我们可以使用SpringData框架简化

SpringData是Spring提供的一套连接各种第三方数据源的框架集

其中连接ES的是Spring Data Elasticsearch

官方网站: https://spring.io/projects/spring-data

添加依赖和配置

<!-- Spring Data Elasticsearch 整合依赖 -->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-data-elasticsearch</artifactId>

</dependency>

application.properties添加配置

```properties

# 配置ES所在的ip地址和端口号信息

spring.elasticsearch.rest.uris=http://localhost:9200

# 设置日志门槛

logging.level.cn.tedu.search=debug

# SpringDataElasticsearch框架中有一个转换输出信息的类,它也需要设置为debug logging.level.org.elasticsearch.client.RestClient=debug

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿码德乌斯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值