实例数据如下:
{
"account_number": 0,
"balance": 16623,
"firstname": "Bradshaw",
"lastname": "Mckenzie",
"age": 29,
"gender": "F",
"address": "244 Columbus Place",
"employer": "Euron",
"email": "bradshawmckenzie@euron.com",
"city": "Hobucken",
"state": "CO"
}
加载数据的操作:
你可以从这里下载示例数据
提取它到我们的当前目录,并且加载到我们的集群中:
新建一个文件accounts.json,然后将数据复制粘贴到该文件中,保存退出
在这个accounts.json文件所在目录下执行如下命令:
curl -H "Content-Type: application/json" -XPOST "localhost:9200/bank/_doc/_bulk?pretty&refresh" --data-binary "@accounts.json"
搜索api
运行搜索有两种方式:
- 把检索的参数放在url后面(restful的格式)
- 放在请求体里面相当于http的get和post的请求
请求体方法允许你更有表现力,也可以使用可读的json定义搜索。
restapi可以从_search端点访问,然后返回bank索引中的所有文档:
curl -X GET “localhost:9200/bank/_search?q=*&sort=account_number:asc&pretty”
上面的请求中我们在"bank"索引中检索,q=*参数表示匹配所有文档;sort=account_number:asc表示每个文档的account_number字段升序排序;pretty参数表示返回漂亮打印的JSON结果。
请求体的实例如下:
curl -X GET "localhost:9200/bank/_search" -H 'Content-Type: application/json' -d'
{
"query": { "match_all": {} },
"sort": [
{ "account_number": "asc" }
]
}
'
区别在于,我们没有在URI中传递q=*,而是向_search API提供json风格的查询请求体
很重要的一点是,一旦返回搜索结果,Elasticsearch就完全完成了对请求的处理,不会在结果中维护任何类型的服务器端资源或打开游标。这是许多其他平台如SQL形成鲜明对比。
查询语言:
es提供了json风格的语言如:
1.
curl -X GET "localhost:9200/bank/_search" -H 'Content-Type: application/json' -d'
{
"query": { "match_all": {} }
}
'