跳到主要内容

十二、Elasticsearch 教程: API 约定

上一章节我们有提到 Elasticsearch 的 RESTful API 使用 HTTP 作为传输协议,使用 JSON 作为数据交换格式。但是,在 API 细节方面,Elasticsearch 还有一些简单的约定。

当然了,我们也可以说是 API 接口规范

API

API,是 Application Programming Interface 的简写,中文译为 应用程序编程接口

API是对一组函数调用或用于访问特定 Web 应用程序中的软件组件的其他编程指令,例如,微博 ( Weibo ) API 可帮助开发人员通过访问来自 微博 的数据或其它功能来创建应用程序,比如实现使用微博账号登录

因为Elasticsearch 的 RESTful API 使用 HTTP 作为传输协议,使用 JSON 作为数据交换格式,所以它对如何使用 HTTP 发起请求和返回响应,如何使用 JSON 制定了一些规范

多个索引

有些时候,我们可能需要一次访问 API 的过程中在多个位置或所有可用数据中进行搜索,这时候就可能用到一个或多个索引。

Elasticsearch RESTful API 中的大部分操作 ( 主要是搜索 ) ,都适用于一个或多个索引的情况

Elasticsearch 提供了有许多不同的符号用于执行多个索引中的操作

逗号分隔符 ( , )

逗号分隔符用于分隔不同的索引

范例

下面发起的请求用于在 index1index2index3 索引中查询所有包含 any_string 数据

POST http://localhost:9200/index1,index2,index3/_search?pretty

请求正文

{
"query":{
"query_string":{
"query":"any_string"
}

_all 关键字用于所有的索引

如果要在所有的索引中查询,则可以使用 _all 关键字

范例

下面发起的请求用于查询当前服务器上所有索引中包含 any_string 的数据

POST http://localhost:9200/_all/_search?pretty