Elasticsearch 7 - 入门
目录
索引操作
- 索引可以理解为关系型数据库中的“表”
创建索引
PUT http://192.168.213.154:9200/index
{
"settings":{
"index":{
"number_of_shards":"3",
"number_of_replicas":"0"
}
}
}
查看索引
GET http://192.168.213.154:9200/_cat/indices?v
删除索引
DELETE http://192.168.213.154:9200/index
映射操作
- 映射可以理解为关系型数据库中的“字段属性”(date、int、varchar等)
- 只有已经存在的索引才可以创建映射关系,而且只可以创建一次不可以修改
创建索引并同时创建映射关系
- 主要数据类型
- text:可以被分词
- keyword:不能被分词,整体就是一个所有命中点
- long、integar、shot、bytedouble、float、boolean、date、object
- 数组内部数据类型必须一致
string
PUT http://192.168.213.154:9200/index_test_2
{
"mappings":{
"properties":{
"details":{
"type":"text"
},
"username":{
"type":"keyword",
"index":false
}
}
}
}
为已经存在的索引创建映射关系
POST http://192.168.213.154:9200/index_test_1/_mappings
{
"properties":{
"details":{
"type":"text"
},
"username":{
"type":"keyword",
"index":false
}
}
}
文档操作
- 插入
- 文档可以理解为关系型数据库中的“行”数据
- 如果插入的文档是空索引,没有映射关系,或者某个字段没有对应的映射关系都会自动创建映射关系
- 字符串长度默认256,超出会被忽略
- 更新
- 每次更新后_version都会累加
插入操作
{
"id":1001,
"details":"Is a good man",
"name":"陈某某"
}
---------------------------------------------------------------------------
{
"id":1002,
"details":"Is a great woman",
"name":"孟某某"
}
指定更新
POST http://192.168.213.154:9200/index_test/_doc/1001/_update
{
"doc":{
"id":1003,
"details":"我只修改它"
}
}
全部更新
POST http://192.168.213.154:9200/index_test/_doc/1001
{
"details":"只剩下我了"
}
------------------------------------------------------------------
PUT http://192.168.213.154:9200/index_test/_doc/1001
{
"details":"又剩下我了"
}
删除文档
DELETE http://192.168.213.154:9200/index_test/_doc/1001
文档查询
QueryString
# 查询所有数据,不区分索引
GET http://192.168.213.154:9200/_search
# 查询index_test_1索引下所有数据
GET http://192.168.213.154:9200/index_test_1/_search
GET http://192.168.213.154:9200/index_test_1/_doc/_search
# 查询单条数据
GET http://192.168.213.154:9200/index_test/_doc/1001
# _source用于定义返回结果
GET http://192.168.213.154:9200/index_test_1/_doc/_search?_source=id,name
# HEAD 查询只用于判断要查询的数据是否存在
HEAD http://192.168.213.154:9200/index_test_1/_doc/1002
乐观锁
- ES进行事务操作时,URI拼接?if_seq_no={数值}&if_primary_term={数值}可以对当前操作进行乐观锁判断,如果if_seq_no与if_primary_term值与提交值一致方可修改