美文网首页
Elasticsearch 术语、优势

Elasticsearch 术语、优势

作者: dylan丶QAQ | 来源:发表于2020-10-20 10:42 被阅读0次

    起因:在项目开发过程中,要使用到搜索 引擎来对一些关键字实现逆向查询,如果仅用模糊搜索,那么搜索的时间会根据数据量的增大而增大,对比之下就学了elasticsearch,也记录一下,常常回顾。


    1. ElastchSearch核心术语学习

    1.1. 术语学习

    • 索引index

      • 我们可以和数据库去类比,整个的ES就相当于一个数据库服务
      • 我们数据库中的表就是ES中的index
    • 类型type

      • 相当于一个逻辑类型
      • 比如商品的分类:食品、服饰、电子产品
      • ESv7.x以后就不再使用type了,5.x/6.x还有
    • 文档document(doc)

      • 相当于一个数据库表里的一行一行的数据
      • 就是索引中一条一条的数据
    • 字段field

      • 数据行的某一列
    • 映射的mappings

      • 相当于表结构的类型定义
    • NRT

      • Near Real Time
      • ES中新的文档被加入后可查询的时间间隔非常微弱,接近实时
    • shard

      • 数据分片的概念,需要进行水平扩展服务节点只需要加入新的机器到集群中即可
      • 集群的每个数据节点都是HA的
        • 主分片:承担数据写入的访问的作用
        • replica备份分片:除了做备份以外,还承担了读数据的水平负载作用
    • replica:备份分片

    1.2. type为什么会去掉

    1、为什么会有type?

    ​ index库-->type表-->doc记录

    ​ 如果要对记录进行分组,只需要给doc加一个分组的记录field即可,然后使用ES的分组桶来统计

    2、因此在7.x完全去掉type的概念了

    2. 什么是倒排索引

    场景概念

    我们不使用搜索引擎可不可以?

    Redis在查询的时候:key-value?是通过key来找到的value,是否可以通过value来找key?通过value找到和这个value相似度极高的内容?

    倒排索引(Inverted Index):比如通过歌词来查歌名,通过内容检索名称,而这个名称在系统中其实就是一个索引,通过歌来找歌词这是正排索引

    比如拿课程学习举例:

    文档编号 文档内容

    1 架构师之路

    2 Java成长之路(分词: Java 成长 之路)

    3 ES成长学习入门

    搜索的分词 这个分词在哪个文档中出现 文档编号:次数:位置

    成长 2,3 2:1:<3>,3:1:<2>

    3. 搜索引擎对比选型分析

    1.1. 分布式存储与搜索

    分布式就是通过多个节点构成的服务,可以横向扩张,所扩展的节点可以进行请求的分摊,以及存储的扩展

    1.2. Lucene VS solr VS elasticsearch

    • Lucene是一个基于Java开发的全文搜索引擎,不是一个应用程序而是一个类库,有很多的API可以调用来实现我们的业务需要,本质上就是一个jar包,本身就不具备分布式、集群、HA等服务特性,如果你要自己通过Luncen实现分布式就比较复杂

    • Solr是基于Lucene开发的一个搜索引擎应用,是Apache开源项目,也是Java开发,需要独立部署在tomcat上,可以实现集群和分片,自身不支持集群结构,需要zookeeper来进行集群的支持提供服务注册,进行分布式索引查询,也是可以自己实现故障转移的(3组节点,每组2个solr,互为主从)

      • 最大的问题是建立索引的过程中,索引效率下降的及其严重,实时搜索效率不高

        • 搭建两套solr集群,用集群互相主备,升级A的时候,使用B,A升级完了切换到A再升级B
      • 如果不考虑索引创建的同时,索引更新频率不高的情况下,solr的查询速度是略高于ES

      • 支持添加多种数据格式到引擎中的

    • Elasticsearch也是基于lucene的分布式搜索引擎,对外提供了很多restful风格的接口,数据交互使用json格式

      可以支持PB级别的搜索,提供进实时的查询,ELK(Elasticsearch、Logstash、Kibana)早期常用于进行日志分析系统的搭建

    搜索引擎的选型

    • Lucene肯定是要使用到的,但都让solr或者ES给封装了,所以我不直接使用Lucene
    • solr和es,肯定选择elasticsearch

    不要以为每天把功能完成了就行了,这种思想是要不得的,互勉~!

    相关文章

      网友评论

          本文标题:Elasticsearch 术语、优势

          本文链接:https://www.haomeiwen.com/subject/hcmwpktx.html