ES是ELK中的E,即elasticsearch全文搜索引擎,它的英文原意是富有弹性的搜索.它的功能类似一个数据库,能高效的从大量数据中搜索匹配指定关键字的内容,它也将数据保存在硬盘中.它本质上可以理解为一个java项目,使用它进行数据的增删改查就是访问这个项目的控制器方法(url路径).es和redis/mysql一样,不仅服务于java语言,其他语言也可以使用.
成都创新互联网站建设提供从项目策划、软件开发,软件安全维护、网站优化(SEO)、网站分析、效果评估等整套的建站服务,主营业务为成都做网站、成都网站设计,重庆APP开发公司以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。成都创新互联深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!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-boot-starter-data-elasticsearch
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
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款