目录
一、es中的概念
正排索引:比如通过主键id去查找文章的内容
倒排索引:通过文章关键字查询文章主键id,从而回去文章内容,这种索引形式就是倒排索引。
二、和mysql的关系映射
ES里的Index可以看做一个库,而 Types 相当于表,Documents则相当于表的行。
这里Types 的概念已经被逐渐弱化,Elasticsearch 6.X中,一个index下已经只能包含一个type,Elasticsearch 7.X中, Type的概念已经被删除了。
三、索引操作
我们对es的基本操作都是通过http协议来完成的,所以就用get,put,delete,head等方法来操作es,接下来我们会借助postman来操作数据。
1、创建索引
请求方法:put
url:http://localhost:9200/wenzhang
2、获取索引
请求方法:get
url:http://localhost:9200/wenzhang
3、获取所有索引
请求方法:get
url:http://localhost:9200/_cat/indices?v
4、删除索引
请求方法:delete
url:http://localhost:9200/wenzhang
四、文档操作
上面我们介绍过新版本中是弱化了type概念,所以我们直接怼文档操作(用mysql的方式来描述就是:现在不用创建表结构了,直接对数据进行增删改查即可)。
1、新增
两种方式:
1)post
url:http://localhost:9200/wenzhang/_doc
内容:
{
"name":"蜡笔小新",
"age":3.4
}
一定要选json格式。
此时新增就完毕了,如果再点击新增还会新增一条信息,但是_id是不一样的,如果想要自定义id,可以这样写
自定义id:
url:http://localhost:9200/wenzhang/_doc/12001
2)put
put不允许 http://localhost:9200/wenzhang/_doc/
这样直接请求新增数据,必须后面跟id才能新增成功,并且新增多次都会成功
url:http://localhost:9200/wenzhang/_doc/12003
如果把_doc换成_create,这个时候后面必须跟数据库中不存在的id才能新增成功,否则报错,这个操作有点像,mysql中唯一索引的意思。
url:http://localhost:9200/wenzhang/_create/100
2、查询
1)主键查询
方法:get
url:http://localhost:9200/wenzhang/_doc/100
2)全量查询search
方法:get
url:http://localhost:9200/wenzhang/_search
3、修改
1)全量覆盖
方法:put
url:http://localhost:9200/wenzhang/_doc/100
**其实和新增那里的put一样,类似mysql里的
2)部分修改
方法:post
url:http://localhost:9200/wenzhang/_update/100
{
"doc":{
"name":"蜡笔小新11"
}
}
4、删除
方法:delete
url:http://localhost:9200/wenzhang/_doc/100