索引
/indexes
路由允许您创建、管理和删除索引。
索引对象
{
"uid": "movies",
"createdAt": "2022-02-10T07:45:15.628261Z",
"updatedAt": "2022-02-21T15:28:43.496574Z",
"primaryKey": "id"
}
列出所有索引
GET/indexes
列出所有索引。结果可以使用 offset
和 limit
查询参数进行分页。
查询参数
查询参数 | 描述 | 默认值 |
---|---|---|
偏移值 | 要跳过的索引数 | 0 |
限制 | 要返回的索引数 | 20 |
响应
名称 | 类型 | 描述 |
---|---|---|
结果 | 数组 | 索引 的数组 |
偏移值 | 整数 | 跳过的索引数 |
限制 | 整数 | 返回的索引数 |
合计 | 整数 | 索引总数 |
实例
curl \
-X GET 'http://localhost:7700/indexes?limit=3'
响应:200 Ok
{
"results": [
{
"uid": "books",
"createdAt": "2022-03-08T10:00:27.377346Z",
"updatedAt": "2022-03-08T10:00:27.391209Z",
"primaryKey": "id"
},
{
"uid": "meteorites",
"createdAt": "2022-03-08T10:00:44.518768Z",
"updatedAt": "2022-03-08T10:00:44.582083Z",
"primaryKey": "id"
},
{
"uid": "movies",
"createdAt": "2022-02-10T07:45:15.628261Z",
"updatedAt": "2022-02-21T15:28:43.496574Z",
"primaryKey": "id"
}
],
"offset": 0,
"limit": 3,
"total": 5
}
获取一个索引
GET/indexes/{index_uid}
获取有关索引的信息。
路径参数
名称 | 类型 | 描述 |
---|---|---|
index_uid * | 字符串 | uid 请求的索引 |
实例
curl \
-X GET 'http://localhost:7700/indexes/movies'
响应:200 Ok
{
"uid": "movies",
"createdAt": "2022-02-10T07:45:15.628261Z",
"updatedAt": "2022-02-21T15:28:43.496574Z",
"primaryKey": "id"
}
创建一个索引
POST/indexes
创建一个索引。
正文
{
"uid": "movies",
"primaryKey": "id"
}
实例
curl \
-X POST 'http://localhost:7700/indexes' \
-H 'Content-Type: application/json' \
--data-binary '{
"uid": "movies",
"primaryKey": "id"
}'
响应:202 Accepted
{
"taskUid": 0,
"indexUid": "movies",
"status": "enqueued",
"type": "indexCreation",
"enqueuedAt": "2021-08-12T10:00:00.000000Z"
}
使用响应的 taskUid
来跟踪请求的状态。
更新索引
PATCH/indexes/{index_uid}
更新索引的 主键。只要索引中不包含文档,你可以随意更新该索引的主键。
要更改已包含文档的索引的主键,首先必须删除该索引中的所有文档。然后,你可以更改主键并再次对数据集编制索引。
注意
无法更改索引的 uid
。
路径参数
名称 | 类型 | 描述 |
---|---|---|
index_uid * | 字符串 | uid 请求的索引 |
正文
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
主键 * | 字符串/null | 无 | 主键 请求的索引 |
实例
curl \
-X PATCH 'http://localhost:7700/indexes/movies' \
-H 'Content-Type: application/json' \
--data-binary '{ "primaryKey": "id" }'
响应:202 Accepted
{
"taskUid": 1,
"indexUid": "movies",
"status": "enqueued",
"type": "indexUpdate",
"enqueuedAt": "2021-08-12T10:00:00.000000Z"
}
使用响应的 taskUid
来跟踪请求的状态。
删除索引
DELETE/indexes/{index_uid}
删除索引。
路径参数
名称 | 类型 | 描述 |
---|---|---|
index_uid * | 字符串 | uid 请求的索引 |
实例
curl \
-X DELETE 'http://localhost:7700/indexes/movies'
响应:202 Accepted
{
"taskUid": 1,
"indexUid": "movies",
"status": "enqueued",
"type": "indexDeletion",
"enqueuedAt": "2021-08-12T10:00:00.000000Z"
}
使用响应的 taskUid
来跟踪请求的状态。
交换索引
POST/swap-indexes
交换两个或多个索引的文档、设置和任务历史记录。你只能成对交换索引。但单个请求可以交换任意对数的索引。
交换索引是原子事务:所有索引均成功交换,或均未交换。
交换 indexA
和 indexB
还将在任务历史记录中将每次提及 indexA
的地方均替换为 indexB
,反之亦然。enqueued
任务保持不变。
正文
数组对象。每个数组只有一个键:indexes
。
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
indexes * | 字符串数组 | 无 | 待交换的两个 indexUid 数组 |
每个 indexes
数组只能包含两个元素:待交换的两个索引的 indexUid
。发送空数组 ([]
) 有效,但不会执行交换操作。
注意
可以使用单个请求交换多对索引。为此,需要为每对待交换索引创建一组对象。
实例
curl \
-X POST 'http://localhost:7700/swap-indexes' \
-H 'Content-Type: application/json' \
--data-binary '[
{
"indexes": [
"indexA",
"indexB"
]
},
{
"indexes": [
"indexX",
"indexY"
]
}
]'
响应
{
"taskUid": 3,
"indexUid": null,
"status": "enqueued",
"type": "indexSwap",
"enqueuedAt": "2021-08-12T10:00:00.000000Z"
}
注意
由于 indexSwap
是 全局任务,indexUid
始终为 null
。
使用响应的 taskUid
来跟踪请求的状态。