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

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

要求

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

获取单个索引设置的值

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

使用 /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 参考