将 azure 搜索索引结果的某些字段更新为 null

update azure search index results some fields to be null

我有一个带有 Cosmos DB 的 Azure 搜索索引。 在我的数据库中,我在一个集合中有四个文档。每个文档都有四个字段:field1、field2、field3、field4。而且都是有值的,不是NULL。

在 Azure 门户中,目前我的索引具有三个字段(field1、field2、field3)作为可搜索和可检索。搜索工作正常,我可以获得包含 3 个字段和值的 4 个记录。

现在我通过添加一个新字段作为 field4 来更新我的索引,该字段具有 Searchable 和 Retrievable。然后 运行 我的索引器更新索引。我注意到只有一个记录的 field4 有一个值,而其他记录有 field4: null

我做了几次同样的测试,发现它随机发生在一些记录上。有时它会给我一条 field4 有值的记录。有时它会给我 two/three 条带有 field4 的记录有一个值。

有人知道这个问题吗?幕后的魔法是什么?

如果基础 Cosmos DB 数据未更改,索引器将不会更新索引,因为索引是增量的。要触发 from-scratch 重新索引,请重置索引器 - 您可以使用 reset indexer API 或直接在 Azure portal/indexer 属性 blade.

中执行此操作

您有时会看到一个或多个更改 "magically" 的可能原因是 Azure 搜索增量索引逻辑补偿了时间偏差,因此最近添加的 Cosmos DB 文档可以重复处理。