使用 Meilisearch API 配置索引设置

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

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

    要求

    获取单个索引设置的值

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

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

    curl \
      -X GET 'MEILISEARCH_URL/indexes/INDEX_NAME/settings/searchable-attributes'

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

    您应该立即收到响应

    [
      "*"
    ]
    

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

    更新索引设置

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

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

    curl \
      -X PUT 'MEILISEARCH_URL/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 'MEILISEARCH_URL/tasks/TASK_UID'

    Meilisearch 将响应一个任务对象

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

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

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

    curl \
      -X GET 'MEILISEARCH_URL/indexes/INDEX_NAME/settings/searchable-attributes'

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

    [
      "title",
      "overview"
    ]
    

    结论

    您已使用 Meilisearch API 来检查索引设置的值。这揭示了一个改善项目性能的机会,因此您更新了此索引设置,以使您的应用程序更好,响应速度更快。

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

    有关所有索引设置的完整参考,请查阅设置 API 参考