一.Elasticsearch快速入门及使用
一.Elasticsearch是什么
Elasticsearch 是一个免费且开放的分布式搜索和分析引擎,适用于包括文本、数字、地理空间、结构化和非结构化数据等在内的所有类型的数据。
Elasticsearch 是全文搜索引擎的首选。它可以快速地储存、检索和分析海量数据。
二.基本概念
1.index (索引)
相当于mysql你创建的某个数据库。
2. type (类型)
相当于mysql你创建的某个表。
3.Document (文档)
相当于mysql表里的数据 (json格式)
三.为什么Elasticsearch可以从海量数据里快速检索出数据
快速检索归功于 Elasticsearch的倒排索引(存入数据会维护一张倒排索引表)
倒排索引的步骤 举例:按顺序存入 A =《大话东游》、B =《爱坤大话东游》、C =《大话连篇东游》、D = 《大话西游》
(1) 分词 ①《大话东游》会被分成 《大话》和《东游》并属于A。
②《爱坤大话东游》会被分成 《爱坤》《大话》和《东游》并属于B。
③《大话连篇东游》会被分成 《大话》《连篇》和《东游》并属于C。
④《大话西游》会被分成 《大话》和《西游》并属于D。
倒排索引表如下:
(2) 检索 例如:检索《爱坤大话西游》 ① 分词成 《爱坤》《大话》和《西游》 ②去倒序索引表去查,包含这几项的记录。 ③ 查到如下
④ 然后计算相关性得分 D最符合,因为D分成两个单词都命中(2/2)。然后B分成三个单词命中两个(2/3)。然后A…,最后会根据相关性得分从高到低返回。
四.Elasticsearch安装
1.解压
2.运行
3.显示以下内容就是启动成功1
4.Kibana可视化软件安装
五.入门(基本的操作)
注意:因为es把命令都封装成RestApi,所以我们直接发请求就行。
1.查看es基本信息
2.索引一个文档(新增一条数据)
举例:http://localhost:9200/kunkun/ikun/2.5 含义:我们在kunkun索引下的ikun类型下保存id为2.5的数据。(相当于在kunkun数据库下的ikun表加一个id为2.5的数据,es里面存的是json数据)
异同点: ①POST和PUT请求新增如果重复发请求,如果存在就会更新。
②POST和PUT如果重复发请求更新时,不会对比原数据,版本号等会改变。
③POST请求不带id,会自动给你生成唯一id。PUT请求不带id会报错。
3.查询一个文档(查询一条数据)
4.更新一个文档(更新数据)
不适用: 大并发更新。 适用: 大并发查询偶尔更新。
注意:POST请求带 _update 关键字更新时会对比原来的数据,如果数据没有任何改变,不做任何操作,版本号等都不改变。
5.删除索引或文档(删除数据库或数据)
(1) 删除文档
(2) 删除索引
6.批量操作
注意:我们使用Kibana操作,批量操作时上一条命令失败不会影响下一条命令的操作。 (1) 简单测试
//给kunkun数据库下的ikun表导入两条数据 POST /kunkun/ikun/_bulk {"index":{"_id":"1"}} {"name":"chang"} {"index":{"_id":"2"}} {"name":"tiao"}
(2) 批量导入测试数据