全部产品
阿里云办公

ES访问测试

更新时间:2018-04-03 14:28:15

阿里云Elasticsearch 创建完成之后,您可以登录Elasticsearch控制台集成的Kibana控制台,在Dev Tools界面测试。也可调用符合条件ECS实例中的 curl 命令测试。

您也可以参考elastic官方提供的其它 Elasticsearch client 进行测试。

账号密码

  • username:默认为 elastic
  • password:您在购买阿里云ES界面中指定的密码,或初始化 Kibana 时指定的密码。

注意

  • 若您创建的阿里云Elasticsearch实例版本包含 with_X-Pack 信息,则访问该阿里云ES实例时,必须指定用户名和密码。
  • 若您的Elasticsearch实例版本不包含 with_X-Pack 信息,不用指定用户名和密码。

基于ECS访问前提

  • 阿里云Elasticsearch 与依赖的阿里云ECS 必须处于同一个 VPC 下。
  • 阿里云ECS 处于经典网络下,期望访问专有网络(VPC)中的阿里云Elasticsearch,请先参考 经典网络访问常见问题 文档。

curl 测试

指定用户名密码访问9200端口:

  1. curl -u username:password 'http://<HOST>:9200/filebeat/my_type/'?pretty -d '{"title": "One", "tags": ["ruby"]}'

响应如下:

  1. {
  2. "_index" : "filebeat",
  3. "_type" : "my_type",
  4. "_id" : "AV-bTkaTwdiHxfaSqlAt",
  5. "_version" : 1,
  6. "result" : "created",
  7. "_shards" : {
  8. "total" : 2,
  9. "successful" : 2,
  10. "failed" : 0
  11. },
  12. "created" : true
  13. }

无账号密码访问示例:

  1. curl http://<HOST>:9200/index_name/type_name -XPOST -d '{"title": "One", "tags": ["ruby"]}'

创建文档

使用 HTTP POST方式创建:

  1. curl http://<id>.elasticsearch.aliyuncs.com:9200/my_index/my_type -XPOST -d '{"title": "One", "tags": ["ruby"]}'
  • my_index :是索引名称。
  • 每个文档都拥有自己的 IDtype,在返回的结果中会显示响应的 IDtype。如果在创建时没有指定,则系统会为其随机生成一个。

注意

  • 如果您已开启自动创建索引(默认关闭),并且指定的 index 名称不存在,则在创建 document 时,系统将自动创建 index

创建成功响应示例:

  1. {
  2. "_index": "my_index",
  3. "_type": "my_type",
  4. "_id": "AV4JIvi15ny3i8DCdK1H",
  5. "_version": 1,
  6. "result": "created",
  7. "_shards": {
  8. "total": 2,
  9. "successful": 1,
  10. "failed": 0
  11. },
  12. "created": true
  13. }

更新文档

若Elasticsearch中存在文档,可使用如下语句更新文档。

http://<id>.elasticsearch.aliyuncs.com:9200/my_index/my_type/<doc_id>

  • <doc_id>:表示文档标识ID。
  1. $ curl http://<id>.elasticsearch.aliyuncs.com:9200/my_index/my_type/AV4JIvi15ny3i8DCdK1H -XPOST -d '{"title": "Four updated", "tags": ["ruby", "php"]}'

更新成功响应示例:

  1. {
  2. "_index": "my_index",
  3. "_type": "my_type",
  4. "_id": "AV4JIvi15ny3i8DCdK1H",
  5. "_version": 2,
  6. "result": "updated",
  7. "_shards": {
  8. "total": 2,
  9. "successful": 1,
  10. "failed": 0
  11. },
  12. "created": false
  13. }

备注

也可以使用批量的 API 进行文档更新。

检索文档

可以通过HTTP GET对文档进行检索查询:

  1. $ curl http://<id>.elasticsearch.aliyuncs.com:9200/my_index/my_type/AV4JIvi15ny3i8DCdK1H
  2. {
  3. "_index" : "my_index",
  4. "_type" : "my_type",
  5. "_id" : "_b-kbI1MREmi9SeixFNEVw",
  6. "_version" : 2,
  7. "exists" : true, "_source" : {
  8. "title": "Four updated", "tags": ["ruby", "php"]
  9. }

搜索文档

可以通过HTTP GETHTTP POST对文档进行搜索,通过 URI 参数制定搜索对象,目标如下:

  1. http://<id>.elasticsearch.aliyuncs.com:9200/_search
  2. http://<id>.elasticsearch.aliyuncs.com:9200/{index_name}/_search
  3. http://<id>.elasticsearch.aliyuncs.com:9200/{index_name}/{type_name}/_search

例如:

  1. $ curl http://<id>.elasticsearch.aliyuncs.com:9200/my_index/my_type/_search?q=title:T*

复杂搜索

必须使用HTTP POST对文档进行复杂搜索:

  1. $ curl http://<id>.elasticsearch.aliyuncs.com:9200/my_index/my_type/_search?pretty=true -XPOST -d '{
  2. "query": {
  3. "query_string": {"query": "*"}
  4. },
  5. "facets": {
  6. "tags": {
  7. "terms": {"field": "tags"}
  8. }
  9. }}'

备注

使用?pretty=true是为了让返回结果更具可读性。

删除文档

  1. $ curl http://<id>.elasticsearch.aliyuncs.com:9200/{index}/{type}/{id} -XDELETE

删除指定类型对文档

  1. $ curl http://<id>.elasticsearch.aliyuncs.com:9200/{index}/{type} -XDELETE

删除一个索引

  1. $ curl http://<id>.elasticsearch.aliyuncs.com:9200/{index} -XDELETE

备注

更多文档可以参考Elastic.co官方帮助中心:https://cloud.elastic.co/#help/

本文导读目录