索引

    /indexes 路由允许您创建、管理和删除索引。

    了解有关索引的更多信息.

    索引对象

    {
      "uid": "movies",
      "createdAt": "2022-02-10T07:45:15.628261Z",
      "updatedAt": "2022-02-21T15:28:43.496574Z",
      "primaryKey": "id"
    }
    
    名称类型默认值描述
    uid字符串索引的唯一标识符。创建后无法更改
    createdAt字符串索引的创建日期,表示为 RFC 3339 格式。在创建索引时自动生成
    updatedAt字符串索引更新的最新日期,以 RFC 3339 格式表示。索引创建或更新时自动生成
    主键字符串/nullnull主键 索引。如果未指定,Meilisearch猜您的主键 从您添加到索引中的第一个文档

    列出所有索引

    GET/indexes

    列出所有索引。结果可以使用 offsetlimit 查询参数进行分页。

    查询参数

    查询参数描述默认值
    偏移值要跳过的索引数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 *字符串uid 请求的索引
    主键字符串/nullnull主键 请求的索引
    {
      "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

    交换两个或多个索引的文档、设置和任务历史记录。你只能成对交换索引。但单个请求可以交换任意对数的索引。

    交换索引是原子事务:所有索引均成功交换,或均未交换。

    交换 indexAindexB 还将在任务历史记录中将每次提及 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跟踪请求的状态