全部产品
阿里云办公

ES访问测试

更新时间:2018-08-29 17:25:08

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

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

账号密码

必需要指定阿里云ES实例访问账号密码,才能访问阿里云ES实例服务。

  • username:表示阿里云ES实例访问账号,建议通过非elastic账号访问。
  • password:您在购买阿里云ES界面中指定的密码,或初始化Kibana时指定的密码。

注意:

  • 支持通过elastic账号访问,但因为在修改elastic账号对应密码后需要一些时间来生效,在生效密码期间会影响服务访问,因此不建议通过elastic来访问。

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

基于ECS访问前提

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

curl测试

温馨提示:

如果阿里云ES实例中不存在filebeat索引,需要先执行类似PUT filebeat命令来创建对应索引,或者修改YML文件配置允许自动创建索引(默认不允许),否则执行下面命令会提示index_not_found_exception报错。

Linux环境

通过Linux环境下的curl命令访问阿里云ES实例的9200端口:

指定账号密码访问示例:

  1. curl -XPOST -u username:password 'http://<HOST>:9200/filebeat/my_type/'?pretty -d '{"title": "One", "tags": ["ruby"]}'
  • <HOST>表示阿里云ES实例内网/公网地址,详情请参见阿里云ES实例基本信息界面。

响应如下:

  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. }

Windows环境

通过Windows环境下的curl命令访问阿里云ES实例的9200端口:

指定账号密码访问示例:

  1. curl -XPOST -u username:password "http://<HOST>:9200/filebeat/my_type/"?pretty -d "{"""title""": """One""","""tags""": ["""ruby"""]}"
  • <HOST>表示阿里云ES实例内网/公网地址,详情请参见阿里云ES实例基本信息界面。

响应如下:

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

创建文档

使用 HTTP POST方式创建:

  1. curl http://<HOST>:9200/my_index/my_type -XPOST -d '{"title": "One", "tags": ["ruby"]}'
  • my_index :是索引名称。
  • <HOST>表示阿里云ES实例内网/公网地址,详情请参见阿里云ES实例基本信息界面。
  • 每个文档都拥有自己的 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://<HOST>:9200/my_index/my_type/<doc_id>

  • <HOST>表示阿里云ES实例内网/公网地址,详情请参见阿里云ES实例基本信息界面。
  • <doc_id>:表示文档标识ID。
  1. $ curl http://<HOST>: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://<HOST>: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. }
  • <HOST>表示阿里云ES实例内网/公网地址,详情请参见阿里云ES实例基本信息界面。

搜索文档

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

  1. http://<HOST>:9200/_search
  2. http://<HOST>:9200/{index_name}/_search
  3. http://<HOST>:9200/{index_name}/{type_name}/_search
  • <HOST>表示阿里云ES实例内网/公网地址,详情请参见阿里云ES实例基本信息界面。

例如:

  1. $ curl http://<HOST>:9200/my_index/my_type/_search?q=title:T*
  • <HOST>表示阿里云ES实例内网/公网地址,详情请参见阿里云ES实例基本信息界面。

复杂搜索

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

  1. $ curl http://<HOST>: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. }}'
  • <HOST>表示阿里云ES实例内网/公网地址,详情请参见阿里云ES实例基本信息界面。

温馨提示:

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

删除文档

  1. $ curl http://<HOST>:9200/{index}/{type}/{id} -XDELETE
  • <HOST>表示阿里云ES实例内网/公网地址,详情请参见阿里云ES实例基本信息界面。

删除指定类型对文档

  1. $ curl http://<HOST>:9200/{index}/{type} -XDELETE
  • <HOST>表示阿里云ES实例内网/公网地址,详情请参见阿里云ES实例基本信息界面。

删除一个索引

  1. $ curl http://<HOST>:9200/{index} -XDELETE
  • <HOST>表示阿里云ES实例内网/公网地址,详情请参见阿里云ES实例基本信息界面。

温馨提示:

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