Elasticsearch总结

62 阅读2分钟
1.ES基本概念

什么是ES

ES是一个基于Lucene搜索引擎实现的专注于搜索场景的非关系型数据库
ES也是文档型存储的数据库,因为存储的数据类型是JSON
2.ES的核心概念

索引Index

7以后,与类型(表)是一个绑定关系,通常我们把一张表绑定到一个索引,
所以我们也可以将索引看做是表的概念

类型type

从7以后, 一个索引下只有一个类型_doc

文档Document

一行数据就是一个文档

字段Filed

一个属性就是一个字段
3.数据类型

了解ES提供的各大类型,简单来说就是java中提供ES都有

重点了解
    `text=>全文搜索
        ·需要进行分词,做全文搜索的字段使用
        
    `keyword=>精确搜索
        ·需要精确匹配的字段使用
        
4.文档操作

新增操作

1.如果索引不存在, 会自动创建索引以及数据结构
2.ES中默认的id为_id,如果新增时不指定,会自动创建一个随机字符串,如果指定就是指定的值
3.新增时,如果该数据已存在,就会变成更新操作,而且默认是全量更新

更新文档

全量:直接与新增操作相同
部分:
    请求方法:POST
    请求路径:/索引/_update/id
    参数:{"doc":{字段}}
    

查询文档(了解) 删除文档

删除实际是软删除,不会将内存回收,仅仅是清空对象中的数据,并更新版本
全局搜索

单个字段搜索与多个字段搜索

match
    {"query":{"match":{字段}}}
    
multi_match
    {"query":{"multi_match":{"query":关键字,"fileds":[字段...]}}
    

中文分词

默认分词器不支持中文,对中文分词是一个一个字的拆分
IK分词器
    ik_smart:粗粒度分词,能分多粗分多粗
    ik_max_word:细粒度分词,能分多细就分多细
    词库:维护着需要拆的词,以及哪些词不需要