• ElasticSearch ( 二 ) 基本概念


    3.基本概念

    全文搜索(Full-text Search)

    全文检索是指计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。
     在全文搜索的世界中,存在着几个庞大的帝国,也就是主流工具,主要有:

    • Apache Lucene
    • Elasticsearch
    • Solr
    • Ferret
    倒排索引(Inverted Index)

    该索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引(inverted index)。Elasticsearch能够实现快速、高效的搜索功能,正是基于倒排索引原理。

    1. 欢乐 英雄
    2. 大漠 欢乐 英雄
    3. 欢乐 无敌 英雄
    4. 大漠 英雄
    5. 欢乐 无敌
    6. 英雄 欢乐 行动
    7. 英雄 故事

    英雄 1 2 3 4 6 7

    欢乐 1 2 3 5 6

    大漠 2 4

    无敌 3 5

    行动 6

    故事 7

    节点 & 集群(Node & Cluster)

    Elasticsearch 本质上是一个分布式数据库,允许多台服务器协同工作,每台服务器可以运行多个Elasticsearch实例。单个Elasticsearch实例称为一个节点(Node),一组节点构成一个集群(Cluster)。

    索引(Index)

    Elasticsearch 数据管理的顶层单位就叫做 Index(索引),相当于关系型数据库里的数据库的概念。另外,每个Index的名字必须是小写。

    文档(Document)

    Index里面单条的记录称为 Document(文档)。许多条 Document 构成了一个 Index。Document 使用 JSON 格式表示。同一个 Index 里面的 Document,不要求有相同的结构(scheme),但是最好保持相同,这样有利于提高搜索效率。

    相当于 关系型数据库里的记录

    类型(Type)

    Document 可以分组,比如employee这个 Index 里面,可以按部门分组,也可以按职级分组。这种分组就叫做 Type,它是虚拟的逻辑分组,用来过滤 Document,类似关系型数据库中的数据表。
     不同的 Type 应该有相似的结构(Schema),性质完全不同的数据(比如 products 和 logs)应该存成两个 Index,而不是一个 Index 里面的两个 Type(虽然可以做到)。

    文档元数据(Document metadata)

    文档元数据为_index, _type, _id, 这三者可以唯一表示一个文档,_index表示文档在哪存放,_type表示文档的对象类别,_id为文档的唯一标识。

    字段(Fields)

    每个Document都类似一个JSON结构,它包含了许多字段,每个字段都有其对应的值,多个字段组成了一个 Document,可以类比关系型数据库数据表中的字段。

    在 Elasticsearch 中,文档(Document)归属于一种类型(Type),而这些类型存在于索引(Index)中,下图展示了Elasticsearch与传统关系型数据库的类比:

    Relational DBElasticsearch
    Databases(库)Indices(索引)
    Tables(表)Types(类型)
    Rows(记录)Documents(文档, json结构)
    Columns(字段)Fields(属性)
    /_cat/nodes   #查看所有结点
    192.168.3.18 74 94 7 0.00 0.06 0.13 cdfhilmrstw * localhost.localdomain
    
    /_cat/health  #查看es健康状况
    1634556372 11:26:12 elasticsearch yellow 1 1 11 11 0 0 3 0 - 78.6%
    
    /_cat/master  #查看主结点
    t2idrbyaQ_uupNpbpjRoEA 192.168.3.18 192.168.3.18 localhost.localdomain
    
    /_cat/indices  #所有结点
    yellow open testdata                        tAiZls_pS7y7uo8iaA9Ekg 1 1  7    0 14.8kb 14.8kb
    green  open .geoip_databases                Mpp5dpo_T8-uMiwfhL7LTA 1 0 41   26 61.2mb 61.2mb
    yellow open likedata                        T-NsU0nORWqfbJtGEyHuWg 1 1  7    0  9.5kb  9.5kb
    green  open .kibana_7.15.0_001              wBGBXYCwR2-CrkyoJxlaig 1 0 24    3  2.3mb  2.3mb
    green  open .apm-custom-link                p0j9irfRT0aUuRRtaI2Y1Q 1 0  0    0   208b   208b
    green  open .apm-agent-configuration        2miggVOpSeCuXnyBlKMX5g 1 0  0    0   208b   208b
    green  open .kibana-event-log-7.15.0-000001 ME3K3sXQTqOkWw4K4iJLZQ 1 0  6    0 29.8kb 29.8kb
    green  open .kibana_task_manager_7.15.0_001 xWADFXRKTiiPJU8-pbfNqQ 1 0 15 1146  6.2mb  6.2mb
    yellow open customer                        tA8ZLtQyQsaZgyCVnO9tWQ 1 1  3    0  8.7kb  8.7kb
    green  open .tasks                          PyKrrucKQHWKigERZqeYig 1 0  8    0 36.5kb 36.5kb
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
  • 相关阅读:
    windows 使用 pybind11
    天地图图层切换显示
    html, css写一个loading
    mybatis批量更新问题
    什么是CDN内容分发网络?如何做到加速的?
    PostgreSQL数据库统计信息——analyze流程对不同表的处理
    Docker专题(五)之 端口映射与容器互联
    JavaSE入门---认识String类、学习String类的相关方法
    Python开发技术—文件和异常4
    【数据结构】栈和队列的实现及应用
  • 原文地址:https://blog.csdn.net/yuanchun05/article/details/127766219