Posts Elasticsearchlearn
Post
Cancel

Elasticsearchlearn

elasticsearch 学习笔记

  • elasticsearch 是一个搜索服务器

elasticsearch 提供搜索服务, 类似百度谷歌。。的搜索引擎, 电商网站搜索想要商品 搜索 = 查询

select * from xxx –> 关系型数据库的搜索

  • 对比关系型数据库与文档数据库

1、查询title中包含‘手机’的记录 (模糊查询) select * from xxx where title like '%手机%'

1
-- 左侧有通配符查询效率低

2、 查询title中包含‘华为手机’的记录

1
-- 查询包含华为和包含手机的记录,关系型数据库实现困难

3、 两个问题 1.性能低 2.功能弱

  • 倒排索引(反向索引)

    1、人的记忆是使用正向索引 – 根据唯一值确定记录

    2、什么是倒排索引

    将各个文档的内容进行分词,形成词条,然后记录词条和数据的唯一标识的对应关系形成的产物

  • es数据的存储和搜索原理

    1、 index(索引库), document(文档)

    2、 生成的倒排索引词条会排序,形成一颗树形结构,提升词条查询速度

    3、 es可以进行先分词在查询,可以取交集也可以取并集

  • es概念

    1、es是一个基于Lucene的搜索服务器

    2、es是一个分布式、高扩展、高实时的搜索与数据分析引擎

    3、基于RESTful web接口

    4、es是使用Java语言开发的,并且是开源的,是一个流行的企业级搜索引擎

    5、应用场景 1.海量数据的查询 2.日志数据分析 3.实时数据分许

  • es核心概念

    1、索引(index)

    es存储数据的地方,可以理解为关系型数据库中的数据库的概念

    2、映射(mapping)

    mapping 定义了每个字段的类型、字段所使用的分词器等,相当于数据库中的表结构

    3、文档(document)

    es中最小的数据单元,常以json格式显示,一个document对应关系型数据库中的一行记录

    4、倒排索引

    一个倒排索引由文档中所有不重复的词的列表构成,对于其中每个词,对应一个包含他的文档id列表

  • 操作es

    1、RESTful风格

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
      1. 基于http
    
      2. 可以使用XML或者JSON格式定义
    
      3. 每个URI代表1种资源
    
      4. 客户端使用GET、POST、PUT、DELETE 4个表示操作方式的动词对服务端资源进行操作
    
          GET : 用来获取资源
    
          POST : 用来新建或者更新资源
    
          PUT : 用来更新资源
    
          DELETE : 用来删除资源
    
    

    2、操作索引

    3、操作映射

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    
          简单数据类型
    
          1.字符串
    
            1 text : 会分词 不会聚合
    
            2 keyword : 不会分词 将全部内容作为一个词条 支持聚合
    
          2.数值
    
          3.bool
    
          4.二级制
    
          5.范围类型
    
            integer_range ...
    
          6.日期
    
          复杂数据类型
    
          1.数组 []
    
          2.对象 {}
    
    
    
    

    4、文档操作

    5、分词器

    中文分词器 IK

    6、查询文档

    1
    2
    3
    4
    5
    6
    7
    8
    9
    
        词条查询 term
    
          词条查询不会分析查询条件,只有当词条和查询字符完全匹配是才匹配搜索
    
        全文查询 match
    
          全文查询会分析查询结果,先将查询条件进行分词 然后查询 求并集
    
    

    7、Java Api

上一篇 下一篇

Contents

Search Results