es常用命令

对于刚接触ES的童鞋,经常搞不明白ES的各个概念的含义。尤其对“索引”二字更是与关系型数据库混淆的不行。本文通过对比关系型数据库,将ES中常见的增、删、改、查操作进行图文呈现。能加深你对ES的理解。同时,也列举了kibana下的图形化展示。

ES Restful API GET、POST、PUT、DELETE、HEAD含义:
1)GET:获取请求对象的当前状态。
2)POST:改变对象的当前状态。
3)PUT:创建一个对象。
4)DELETE:销毁对象。
5)HEAD:请求获取对象的基础信息。

以上表为依据,
ES中的新建文档(在Index/type下)相当于Mysql中(在某Database的Table)下插入一行数据。

1、新建文档(类似mysql insert插入操作)
http://localhost:9200/blog/ariticle/1 put
{
“title”:“New version of Elasticsearch released!”,
“content”:“Version 1.0 released today!”,
“tags”:[“announce”,“elasticsearch”,“release”]
}
1
2
3
4
5
6
创建成功如下显示:

{

  • “_index”: “blog”,
  • “_type”: “ariticle”,
  • “_id”: “1 -d”,
  • “_version”: 1,
  • “_shards”: {
    • “total”: 2,
    • “successful”: 1,
    • “failed”: 0
  • },
  • “created”: true

}

在这里插入图片描述--------

2、检索文档(类似mysql search 搜索select*操作)
http://localhost:9200/blog/ariticle/1/ GET

检索结果如下:

{

  • “_index”: “blog”,
  • “_type”: “ariticle”,
  • “_id”: “1”,
  • “_version”: 1,
  • “found”: true,
  • “_source”: {
    • “title”: “New version of Elasticsearch released!”,
    • “content”: “Version 1.0 released today!”,
    • “tags”: [
      • “announce”
      • ,
      • “elasticsearch”
      • ,
      • “release”
    • ]
  • }

如果未找到会提示:

{

  • “_index”: “blog”,
  • “_type”: “ariticle”,
  • “_id”: “11”,
  • “found”: false

}

在这里插入图片描述

具体某个细节内容检索,
查询举例1:查询cotent列包含版本为1.0的信息。
http://localhost:9200/blog/
_search?pretty&q=content:1.0

{

  • “took”: 2,
  • “timed_out”: false,
  • “_shards”: {
    • “total”: 5,
    • “successful”: 5,
    • “failed”: 0
  • },
  • “hits”: {
    • “total”: 1,
    • “max_score”: 0.8784157,
    • “hits”: [
      • {
        • “_index”: “blog”,
        • “_type”: “ariticle”,
        • “_id”: “6”,
        • “_score”: 0.8784157,
        • “_source”: {
          • “title”: “deep Elasticsearch!”,
          • “content”: “Version 1.0!”,
          • “tags”: [
            • “deep”
            • ,
            • “elasticsearch”
          • ]
        • }
      • }
    • ]
  • }

}

查询举例2:查询书名title中包含“enhance”字段的数据信息:
[root@5b9dbaaa1a ~]# curl -XGET 10.200.1.121:9200/blog/ariticle/_search?pretty -d ‘

{ “query” : {
“term” :
{“title” : “enhance” }
}
}’
{
“took” : 189,
“timed_out” : false,
“_shards” : {
“total” : 5,
“successful” : 5,
“failed” : 0
},
“hits” : {
“total” : 2,
“max_score” : 0.8784157,
“hits” : [ {
“_index” : “blog”,
“_type” : “ariticle”,
“_id” : “4”,
“_score” : 0.8784157,
“_source” : {
“title” : “enhance Elasticsearch!”,
“content” : “Version 4.0!”,
“tags” : [ “enhance”, “elasticsearch” ]
}
}, {
“_index” : “blog”,
“_type” : “ariticle”,
“_id” : “5”,
“_score” : 0.15342641,
“_source” : {
“title” : “enhance Elasticsearch for university!”,
“content” : “Version 5.0!”,
“tags” : [ “enhance”, “elasticsearch” ]
}
} ]
}
}

查询举例3:查询ID值为3,5,7的数据信息:
[root@5b9dbaaa148a ~]# curl -XGET 10.200.1.121:9200/blog/ariticle/_search?pretty -d ‘

{ “query” : {
“terms” :
{"_id" : [ “3”, “5”, “7” ] }
}
}’
{
“took” : 5,
“timed_out” : false,
“_shards” : {
“total” : 5,
“successful” : 5,
“failed” : 0
},
“hits” : {
“total” : 3,
“max_score” : 0.19245009,
“hits” : [ {
“_index” : “blog”,
“_type” : “ariticle”,
“_id” : “5”,
“_score” : 0.19245009,
“_source” : {
“title” : “enhance Elasticsearch for university!”,
“content” : “Version 5.0!”,
“tags” : [ “enhance”, “elasticsearch” ]
}
}, {
“_index” : “blog”,
“_type” : “ariticle”,
“_id” : “7”,
“_score” : 0.19245009,
“_source” : {
“title” : “deep Elasticsearch for university!”,
“content” : “Version 2.0!”,
“tags” : [ “deep”, “elasticsearch”, “university” ]
}
}, {
“_index” : “blog”,
“_type” : “ariticle”,
“_id” : “3”,
“_score” : 0.19245009,
“_source” : {
“title” : “init Elasticsearch for university!”,
“content” : “Version 3.0!”,
“tags” : [ “initialize”, “elasticsearch” ]
}
} ]
}
}

3、更新文档(类似mysql update操作)
http://localhost:9200/blog/ariticle/1/_update/ POST
{“script”:”ctx._source.content = \”new version 2.0 20160714\”“}

更新后结果显示:
{

“_index”: “blog”,
“_type”: “ariticle”,
“_id”: “1”,
“_version”: 2,
“_shards”: {
”total”: 2,
“successful”: 1,
“failed”: 0
}
}

查询&验证更新后结果:(对比可知,版本号已经更新完毕)
http://localhost:9200/blog/ariticle/1/

{

  • “_index”: “blog”,
  • “_type”: “ariticle”,
  • “_id”: “1”,
  • “_version”: 2,
  • “found”: true,
  • “_source”: {
    • “title”: “New version of Elasticsearch released!”,
    • “content”: “new version 2.0 20160714”,
    • “tags”: [
      • “announce”
      • ,
      • “elasticsearch”
      • ,
      • “release”
    • ]
  • }

}
`这里写图片描述``

注意更新文档需要在elasticsearch_win\config\elasticsearch.yml下新增以下内容:
1
2
3
4
5

script.groovy.sandbox.enabled: true
script.engine.groovy.inline.search: on
script.engine.groovy.inline.update: on
script.inline: on
script.indexed: on
script.engine.groovy.inline.aggs: on
index.mapper.dynamic: true

4、删除文档(类似mysql delete操作)
http://localhost:9200/blog/ariticle/8/回结果

{

  • “found”: true,
  • “_index”: “blog”,
  • “_type”: “ariticle”,
  • “_id”: “8”,
  • “_version”: 2,
  • “_shards”: {
    • “total”: 2,
    • “successful”: 1,
    • “failed”: 0
  • }

}
--------在这里插入图片描述-------------

作者:铭毅天下
来源:CSDN
原文:https://blog.csdn.net/laoyang360/article/details/51931981
版权声明:本文为博主原创文章,转载请附上博文链接!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值