解决 Algolia 搜索中意外出现的翻译内容
在 techblik.com 上,我使用 Algolia 来提供站内搜索功能。最近,在测试 Polylang 插件的翻译功能时,我发现了一个问题:翻译后的文章开始出现在搜索结果中,这显然不是我想要的结果。
这令人有些困扰,我需要找到一种方法,将这些不应该出现在搜索结果中的翻译记录从 Algolia 中删除。
当我登录 Algolia 的控制面板时,我注意到这些翻译文章的分类信息被标记为法语。
然而,我无法直接在控制面板中删除这些记录。Algolia 的控制面板功能相对有限,他们建议使用其 API 来进行更精细的记录管理。
经过一番研究,我找到了删除这些记录的方法。 你可以使用 cURL 命令或者像 Postman 这样的 HTTP 客户端工具来执行删除操作。
在开始操作之前,你需要准备好以下信息:
- 你的 Algolia 应用程序 ID
- 管理 API 密钥
- 你所使用的索引名称
这些信息你都可以在 Algolia 控制面板的 “设置” -> “API 密钥” 页面中找到。
首先,让我们先执行一个查询,以确认你将要删除的记录是正确的,这样可以避免误删其他数据。
curl -X POST \
-H "X-Algolia-API-Key: ADMIN_API_KEY" \
-H "X-Algolia-Application-Id: APPLICATION_ID" \
"https://APPLICATION_ID.algolia.net/1/indexes/INDEX_NAME/query" \
--data '{"query": "", "filters": "taxonomies.language: Français"}'
请务必将 ADMIN_API_KEY
、APPLICATION_ID
和 INDEX_NAME
替换成你自己的实际值。
上述查询应该会返回你想要删除的那些翻译记录。 确认无误后,我们就可以使用下面的查询来删除它们了。
curl -X POST \
-H "X-Algolia-API-Key: ADMIN_API_KEY" \
-H "X-Algolia-Application-Id: APPLICATION_ID" \
"https://APPLICATION_ID.algolia.net/1/indexes/INDEX_NAME/deleteByQuery" \
--data '{"query": "", "filters": "taxonomies.language: Français"}'
如果你选择使用 Postman,你需要在请求头中添加以下信息:
X-Algolia-Application-Id
X-Algolia-API-Key
这是成功删除记录后的结果。
我的主要目的是删除带有特定分类信息的记录,但通过 Algolia API,你可以管理几乎所有类型的数据。 你可以查阅官方的删除记录API文档,获取更多信息和灵感。