一旦 cosmos db 中的文档过期,如何从 azure 搜索中删除文档?

时间:2021-07-20 12:23:11

标签: azure azure-cosmosdb azure-cognitive-search

我目前正在使用 Azure 搜索服务,其数据源是 Azure Cosmos DB。目前,当 Cosmos DB 中某个文档的 TTL 到期时,搜索服务中的相应文档仍然存在。如何确保文档也从搜索服务中删除?

我知道我可以为数据源中的“软删除列”提供一个字段名称,这将阻止该文档被索引,但在我的情况下,该文档不会被手动删除(而是在 TTL 到期时)因此不能设置软删除列。

1 个答案:

答案 0 :(得分:0)

您可以使用 Azure Cosmos DB 更改源来解决您的问题。您可以创建一个 Azure 函数,只要 cosmosDB 中的文档发生更改,就会触发该函数。在 Azure 函数中,您可以编写使用 REST api 从认知搜索中删除文档的逻辑。

https://docs.microsoft.com/en-us/azure/cosmos-db/read-change-feed#azure-functions

与再次运行索引器相比,这是一种更简洁的方法。如果此逻辑由于某种原因对您不起作用,您可以使用@gaurav mantri 提出的运行索引器