索引
/indexes
路由允许您创建、管理和删除索引。
索引对象
{
"uid": "movies",
"createdAt": "2022-02-10T07:45:15.628261Z",
"updatedAt": "2022-02-21T15:28:43.496574Z",
"primaryKey": "id"
}
列出所有索引
GET/indexes
列出所有索引。可以使用 offset
和 limit
查询参数进行分页。
查询参数
查询参数 | 描述 | 默认值 |
---|---|---|
offset | 要跳过的索引数量 | 0 |
limit | 要返回的索引数量 | 20 |
响应
名称 | 类型 | 描述 |
---|---|---|
results | 数组 | 一个索引的数组 |
offset | 整数 | 跳过的索引数量 |
limit | 整数 | 返回的索引数量 |
total | 整数 | 索引总数 |
示例
curl \
-X GET 'https://127.0.0.1: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 'https://127.0.0.1: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 'https://127.0.0.1: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 |
请求体
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
primaryKey * | 字符串 / null | 不适用 | 请求的索引的主键 |
示例
curl \
-X PATCH 'https://127.0.0.1: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 'https://127.0.0.1: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 'https://127.0.0.1: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
来跟踪您的请求状态。