1、ElasticSearch介绍
1.1、index(索引)
动词:相当于Mysql中的insert
名词:相当于Mysql中的database
1.2、type(类型)
在index(索引)中可以定义一个或多个类型
相当于Mysql中的table
1.3、Document(文档)
保存在某个索引(index)下,某种类型(type)的一个数据(Document),文档是JSON格式,
简单来说,Document就相当于在Mysql数据库中的某一张表中插入了一条数据
1.4、倒排索引机制
每次存入数据都会为其定义一个DocID,再通过ik分词器对其进行分词并记录到一张新表,为其定义单词ID,
后续检索数据时,再对这个检索词进行分词,并匹配分词表,最后返回权重最高的那条数据
举例:先向索引index中的书籍book类型中插入了如下几条Document文档数据
(在数据库中的book表中插入了如下几条数据)
ElasticSearch内部会将这几个数据进行分词,插入新表(type),并记录次数
若你现在想学java虚拟机相关知识,但是不知道具体看哪本书,则在搜索框上输入了java虚拟机,那么倒排索引则会先去分词表中找"java"和"虚拟机"两个单词,再看两个单词对应的docID,取匹配数最多的DocID,这里发现都匹配了一个2,则找到DocID为2的文档(document)“深入理解Java虚拟机”
基本命令postman测试资源包:链接地址
2、检索命令
1、_CAT
1.1、查看所有节点信息
118.89.18.36:9200/_cat/nodes
1.2、查看健康信息状况
118.89.18.36:9200/_cat/health
1.3、查看主节点
118.89.18.36:9200/_cat/master
1.4、查看所有索引
118.89.18.36:9200/_cat/indices
2、索引文档(新增)
2.1、put方式保存数据
118.89.18.36:9200/customer/extermal/1
请求体
{
"name":"张三"
}
返回结果
{
"_index": "customer", //索引
"_type": "extermal", //类型
"_id": "1", //id
"_version": 1, //版本号,每次更新+1
"result": "created", //创建状态
"_shards": {
//用于集群分片,暂时不太清楚
"total": 2,
"successful": 1,
"failed": 0
},
"_seq_no": 3, //并发控制字段,每次更新会+1,用于乐观锁
"_primary_term": 1 //同上
}
特点:必须带id
无id则新增,result状态为created
有id则修改,result状态为updated,version+1