_index 索引(文档存储的地方)
_type 文档存储的类型
_id 文档的唯一标识
curl是利用URL语法在命令行方式下工作的开源文件传输工具,使用curl可以简单实现常见的get/post请求。简单的认为是可以在命令行下面访问url的一个工具。在centos的默认库里面是有curl工具的,如果没有请yum安装即可。
curl
-X 指定http的请求方法 有HEAD GET POST PUT DELETE
-d 指定要传输的数据
-H 指定http请求头信息
curl创建索引库(PUT或POST都可以创建):curl -XPUT http://<ip>:9200/index_name/
PUT和POST区别:
PUT是幂等方法,POST不是。所以PUT用于更新,POST用于新增比较合适。
PUT和DELETE操作是幂等的。所谓幂等是指不管进行多少次操作,结果都一样。比如用PUT修改一篇文章,然后在做同样的操作,每次操作后的结果并没有什么不同,DELETE也是一样。
POST操作不是幂等的,比如常见的POST重复加载问题:当我们多次发出同样的POST请求后,其结果是创建了若干的资源。
还有一点需要注意的就是,创建操作可以使用POST,也可以使用PUT,区别就在于POST是作用在一个集合资源(/articles)之上的,而PUT操作是作用在一个具体资源之上的(/articles/123),比如说很多资源使用数据库自增主键作为标识信息,这个时候就需要使用PUT了。而创建的资源的标识信息到底是什么,只能由服务端提供时,这个时候就必须使用POST。
ES创建索引库和索引时的注意点:
1)索引库名称必须要全部小写,不能以下划线开头,也不能包含逗号
2)如果没有明确指定索引数据的ID,那么es会自动生成一个随机的ID,需要使用POST参数
# get es集群相关信息
GET _cat
GET _cat/master
GET _cat/health
GET _cat/indices?v
# 创建索引(以下都会省略curl和ip)
curl -XPUT http://ES-APP1:9200/ss_20191010/
# 插入数据
PUT /ss_20191010/ch/1 -d '{"id": "1", "title": "hello"}'
# 创建索引及mapping
PUT ss_20191010
{
"settings": {
"number_of_shards": 5,
"number_of_replicas": 1
},
"mappings": {
"type1": {
"properties": {
"COD_ACCT_NO": {
"type": "keyword"
},
"DAT_TXN": {
"type": "keyword",
"format": "YYYY-MM-DD HH:mm:ss"
},
"@timestamp": {
"format": "strict_date_optional_time||epoch_millis",
"type": "date",
"enabled": true
}
}
}
}
}
# 索引查询
POST ss_2019*/_search
POST ss_2019*/_search?q=title:'elasticsearch'
# 根据Id查询
GET ss_20191007/ch/1202000013104906_EBP201910231100133949404_3~21200~1
# 条件查询
GET ss_*/_search
{
"query":{ "match":{ "TAG": "存活超2" } }
}
# 部分字段查找
GET ss_*/_search
{
"query":{"match_all": {}},
"sort":[{"DAT_TXN":"desc"}],
"_source": ["DAT_TXN","AMT_TXN","DAT_POST"]
}
# 组合查询 bool (must + must : 交集, must +must_not :差集,should+should : 并集)
GET ss_*/_search
{
"query":{
"bool":{
"must" : {"match":{"name":"yuanhua"}},
"must" : {"match":{"age":30}},
"must_not" : {"match":{"male":"famale"}},
"must_not" : {"range":{"score" : { "from" : 20, "to" : 33 }}}
}
}
}
# 过滤
GET ss_*/_search
{
"query":{
"bool":{
"must" : [
{"match":{"name":"yuanhua"}},
{"match":{"age":30}}
],
"filter": [
{ "term": { "status": "published" }},
{ "range": { "publish_date": { "gte": "2015-01-01" }}}
]
}
}
}
# 前缀查找
GET ss_*/_search?q=REF_TXN_NO:IBP*&pretty'
GET ss_*/_search
{
"query":{
"prefix":{
"REF_TXN_NO":{
"value": "IBP"
}
}
}
}
# 局部更新(必须用POST)
post ss_20191007/_update_by_query
{
"query":{
"match":{
"_id":"1202000013104906_EBP201910231100133949404_3~21200~1"
}
},
"script":{
"inline":"ctx._source.FEE='111111111111'",
"lang":"painless"
}
}
# 删除索引
DELETE ss_20191020
# 全量删除数据
POST /acct_card/hc/_delete_by_query?refresh&slices=1&pretty
{
"query":{
"match_all":{}
}
}
# 根据_id删除
DELETE ss_20191017/ch/1202000010933760_BTS20191017102522295777_3458~33~125
# 根据条件删除数据
POST /ss_*/_delete_by_query
{
"query":{
"match":{
"REF_TXN_NO": "EBF2007110152490240"
}
}
}