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

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

前提条件

  • 一个新的 Meilisearch Cloud 项目,或自托管 Meilisearch 实例(至少包含一个索引)
  • 安装有 curl 的命令行终端

获取单个索引设置的值

首先检查 searchable attributes(可搜索属性)索引设置的值。

使用 /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",

}

如果 status 显示为 enqueuedprocessed,请稍等片刻后再次检查任务状态。如果 statusfailed,请确保您使用了有效的索引和属性,然后重试。

如果任务 status 显示为 succeeded,则表示您已成功更新索引的可搜索属性。使用子路由检查新设置的值:

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

Meilisearch 应该会返回包含新值的数组:

[
  "title",
  "overview"
]

总结

您已使用 Meilisearch API 检查了索引设置的值。这揭示了提升项目性能的机会,因此您更新了该索引设置,使应用程序表现更好、响应更迅速。

本教程使用了 searchable attributes(可搜索属性)设置,但无论您编辑哪个索引设置,操作流程都是相同的。

要查看所有索引设置的完整参考,请查阅设置 API 参考文档