ElasticSearch -- 分布式搜索引擎

1、概念
    1)、是一款分布式、高性能、高扩展,支持海量数据分析、搜索、计算的搜索引擎
    2)、基于java语言编写,发起的请求是基于json风格的符合Resful风格的DSL语句
    3)、前身-Lucene诞生于1999年,2004年变为了compass,2010年重构成了现在的ES
    4)、ELK:是一个围绕ElasticSearch的技术栈,包含:ElasticSearch、Logstatsh、Kibana,最新版本8.14.1
    5)、Solr: 是ES的一款竞品,2016年被ES吊打,主流成为ES
    


    
2、其中比较重要的概念
    1)、倒排索引 
        1、在文档【增删改】的时候对文档的某个字段进行【合理化的分词】,形成一个【不重复】的词条列表,其中每一个词条对应一个文档id集合
        2、形成一张根据词条查询id集合的 类似hash表结构
        3、形成一张根据id查询文档的 类似hash表结构
        将来搜索时先根据用户输入的条件进行【合理化的分词】,再根据词条找id,最后根据id找到相应的文档(涉及到两次hash查询)
    
    2)、索引-index:同一类型文档的集合,相当于mysql的表
    3)、映射-mapping:对索引结构的约束,相当于mysql的schema
         type、analyzer、index、properties
    4)、文档-document:json格式的数据,相当于mysql的row
    5)、字段-field:一个个的字段,相当于mysql的列
    6)、DSL语句:json风格的符合resful风格的请求语句,相当于mysql的sql语句
    


3、DSL语句去操作索引、文档
    操作索引:
        - 创建索引库:
             PUT /索引库名
             {
                "mapping":{
                    "properties":{
                    }
                }
             }
        - 查询索引库:GET /索引库名
        - 删除索引库:DELETE /索引库名
        - 添加字段:
            PUT /索引库名/_mapping
            {
                "properties":{
                }
            }


    操作文档
        - 创建文档:POST /{索引库名}/_doc/文档id   { json文档 }
        - 查询文档:GET /{索引库名}/_doc/文档id
        - 删除文档:DELETE /{索引库名}/_doc/文档id
        - 修改文档:
          - 全量修改:PUT /{索引库名}/_doc/文档id { json文档 }
          - 增量修改:POST /{索引库名}/_update/文档id { "doc": {字段}}
    


4、用java api去操作索引、文档
    操作索引:
        - 初始化RestHighLevelClient
        - 创建XxxIndexRequest。XXX是Create、Get、Delete
        - 准备DSL( Create时需要,其它是无参)
        - 发送请求。调用RestHighLevelClient#indices().xxx()方法,xxx是create、exists、delete
    
    操作文档:
        - 初始化RestHighLevelClient
        - 创建XxxRequest。XXX是Index、Get、Update、Delete、Bulk
        - 准备参数(Index、Update、Bulk时需要)
        - 发送请求。调用RestHighLevelClient#.xxx()方法,xxx是index、get、update、delete、bulk
        - 解析结果(Get时需要)
 

  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值