使用 Meilisearch API 配置索引设置

    本教程演示如何使用 Meilisearch API 的某个设置子路由来检查和更改索引设置。

    如果您是 Meilisearch Cloud 用户,您也可以使用 Meilisearch Cloud 界面配置索引设置

    要求

    获取单个索引设置的值

    首先检查可搜索属性索引设置的值。

    使用 /settings/searchable-attributes 子路由的 GET 端点,将 INDEX_NAME 替换为您的索引

    curl \
      -X GET 'http://localhost:7700/indexes/INDEX_NAME/settings/searchable-attributes'

    根据您的设置,您可能还需要将 localhost:7700 替换为相应的地址和端口。

    您应该立即收到响应

    [
      "*"
    ]
    

    如果这是一个新索引,您应该看到默认值 ["*"]。这表示 Meilisearch 在搜索时会遍历所有文档属性。

    更新索引设置

    所有文档都包含一个主键属性。在大多数情况下,此属性不包含任何相关数据,因此您可以通过将其显式从可搜索属性列表中移除来改善应用程序的搜索体验。

    使用 /settings/searchable-attributes 子路由的 PUT 端点,将 INDEX_NAME 替换为您的索引,并将示例属性 "title""overview" 替换为您数据集中存在的属性

    curl \
      -X PUT 'http://localhost:7700/indexes/INDEX_NAME/settings/searchable-attributes' \
      -H 'Content-Type: application/json' \
      --data-binary '[
        "title",
        "overview"
      ]'

    这次,Meilisearch 不会立即处理您的请求。相反,您将收到一个汇总的任务对象,而搜索引擎会在获得足够资源后立即更新您的索引设置。

    {
      "taskUid": 1,
      "indexUid": "INDEX_NAME",
      "status": "enqueued",
      "type": "settingsUpdate",
      "enqueuedAt": "2021-08-11T09:25:53.000000Z"
    }
    

    处理索引设置更改可能需要一些时间,具体取决于索引中包含多少个文档。等待几秒钟,然后使用任务对象的 taskUid 监控请求的状态

    curl \
      -X GET 'http://localhost:7700/tasks/TASK_UID'

    Meilisearch 将返回一个任务对象

    {
      "uid":1,
      "indexUid":"INDEX_NAME",
      "status":"succeeded",
      "type":"settingsUpdate",}
    

    如果 statusenqueuedprocessed,请再等待片刻并再次检查任务状态。如果 statusfailed,请确保您使用了有效的索引和属性,然后重试。

    如果任务 statussucceeded,则您已成功更新索引的可搜索属性。使用子路由检查新设置的值

    curl \
      -X GET 'http://localhost:7700/indexes/INDEX_NAME/settings/searchable-attributes'

    Meilisearch 应该返回一个包含新值的数组

    [
      "title",
      "overview"
    ]
    

    结论

    您已使用 Meilisearch API 检查了索引设置的值。这揭示了一个改进项目性能的机会,因此您更新了此索引设置,使您的应用程序变得更好、更具响应性。

    本教程使用了可搜索属性设置,但无论您正在编辑哪个索引设置,过程都是相同的。

    有关所有索引设置的全面参考,请查阅设置 API 参考