Elasticsearch 2.20入门篇:基本操作

假如想象 提交于 2021-02-02 06:59:40

    前面我们已经安装了Elasticsearch ,下一步我们要对Elasticsearch进行一些基本的操作。基本的操作主要有,建索引库,插入数据,查询数据,修改数据,删除数据,删除索引库。

    备注:如果没有特殊说明,本文章及后面所有的文章都在2.20版本中进行验证,其他版本不能确定是否可用。

    由于官方文档都是使用curl来进行实例操作,不太直观,我更喜欢用图形化界面来进行验证。在本文及以后的例子中,我都是已RESTClient3.5来作为操作的工具。下载地址为http://code.fosshub.com/WizToolsorg-RESTClient/downloads,下载的文件是restclient-ui-3.5-jar-with-dependencies.jar。

程序运行: java -jar restclient-ui-3.5-jar-with-dependencies.jar

建索引库

执行PUT localhost:9200/customer?pretty

返回表示建库成功:

{
  "acknowledged" : true
}

说明:http方法PUT,url为localhost:9200/customer?pretty

查询库

执行GET http://localhost:9200/_cat/indices?v

返回:

health status   index      pri  rep       docs.count docs.deleted store.size pri.store.size 

yellow open   customer   5   1          0                 0                   795b        795b 

表示已经建成了一个索引customer,主分片是5个,健康度是黄色,状态是活动,文档数为0。

插入数据

执行 PUT localhost:9200/customer/external/1?pretty

参数:{  "name": "John Doe" }

注意:Method选择PUT,Body要设置成application/x-www-form-urlencoded; charset=UTF-8

返回值为:

{
  "_index" : "customer",
  "_type" : "external",
  "_id" : "1",
  "_version" : 1,
  "_shards" : {
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  },
  "created" : true
}

界面如下:

我们再次执行库查询,发现文档数是1:GET http://localhost:9200/_cat/indices?v  

health status  index      pri rep        docs.count docs.deleted store.size pri.store.size 

yellow open   customer   5   1          1            0      3.5kb          3.5kb 

查询数据

执行:GET http://localhost:9200/customer/external/1?pretty

返回:

{
  "_index" : "customer",
  "_type" : "external",
  "_id" : "1",
  "_version" : 1,
  "found" : true,
  "_source" : {
    "name" : "John Doe"
  }
}

可以看到_source的内容就是我们刚才插入的数据。

本文由赛克蓝德(secisland)原创,转载请标明作者和出处。

修改数据

执行:POST localhost:9200/customer/external/1/_update?pretty

参数:

{
  "doc": { "name": "secisland Doe" }
}

返回结果:

{
  "_index" : "customer",
  "_type" : "external",
  "_id" : "1",
  "_version" : 2,
  "_shards" : {
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  }
}

表示执行成功。

然后我们在查询一下数据

GET http://localhost:9200/customer/external/1?pretty

{
  "_index" : "customer",
  "_type" : "external",
  "_id" : "1",
  "_version" : 2,
  "found" : true,
  "_source" : {
    "name" : "secisland Doe"
  }
}

可以看出文档的内容由John Doe修改成了secisland Doe。

删除文档

执行:DELETE localhost:9200/customer/external/1?pretty

返回:

{
  "found" : true,
  "_index" : "customer",
  "_type" : "external",
  "_id" : "1",
  "_version" : 3,
  "_shards" : {
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  }
}

然后我们查询库的状态:

GET http://localhost:9200/_cat/indices?v

返回:

health status index    pri rep docs.count docs.deleted store.size pri.store.size 

yellow open   customer   5   1          0            0      3.6kb          3.6kb 

从中可以看出,数据库中已经没有记录了。

删除索引库

执行:DELETE localhost:9200/customer?pretty

返回:

{
  "acknowledged" : true
}

表示删除成功

然后我们查询库的状态:

GET http://localhost:9200/_cat/indices?v

返回:

health status index pri rep docs.count docs.deleted store.size pri.store.size 

从中可以看出已经没有任何的库了。

赛克蓝德(secisland)后续会逐步对Elasticsearch的最新版本的各项功能进行分析,近请期待。也欢迎加入secisland公众号进行关注。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!