导入查询

权限认证

Elasticsearch集群搭建好之后,我们可以通过任意HTTP客户端连接集群,进行数据的导入或查询。下面以Linux下的curl命令为例来使用集群。

为保证用户的数据安全,我们为Elasticsearch集群添加了权限管理模块,任何对集群的访问都必须先进行权限认证。认证方式同时支持通用的 Http Basic认证和url参数认证,每次访问集群时都必须传入用户名和密码。在集群详细信息页面下,可以找到登陆的用户名以及HTTP连接信息,密码就是创建集群的时候输入的管理员密码。

例如使用 Http Basic认证方式访问集群:

使用URL参数认证:

创建 index

通过Elasticsearch的创建 index API 带上用户名和密码来创建新的 index:

curl -u username:password -XPUT host:port/cluster_id/index_name

导入数据

实时导入:

curl -u username:password -XPOST 'host:port/cluster_id/index_name/type/id' -d '
{
      "field": "value"
}

id为该条数据的唯一id,如果不指定id,则会自动随机生成一个。

批量导入:

curl -u username:password -XPOST 'host:port/cluster_id/index_name/type/_bulk?pretty' -d '
{"index":{"_id":"1"}}
{"name": "John Doe" }
{"index":{"_id":"2"}}
{"name": "Jane Doe" }
'

每两行为一条数据,必须用换行符分隔。使用如下命令导入文件:

curl -u username:password -XPOST 'host:port/cluster_id/index_name/type/_bulk' --data-binary @import.json

import.json为文件名,单个文件不能超过100M,大文件可分割为小文件并行导入。

查询

列出集群中所有的 index:

curl -u username:password -XGET 'host:port/cluster_id/_cat/indices?v'

查询 index 中的数据:

curl -u username:password -XGET 'host:port/cluster_id/test/_search?pretty' -d '
{
      "query": { "match_all": {} }
}'

关于Elasticsearch其他详细API介绍,请参考Elasticsearch官方文档:

https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html