Azure 搜索服务有 4 个索引,其中 3 个索引配置为具有高水位标记更改跟踪策略的 Azure SQL View 数据源。索引器每 30 分钟运行一次。
在某些情况下,我们需要将一些文档直接合并和上传到索引。我们首先更新 DB,然后通过 Azure Search .Net SDK 来索引。我们将对象数组传递给 MergeOrUpload。我的问题是,如果我通过 1 条记录,索引会正确更新,我可以看到更新后的搜索结果。但是当我尝试 MergeOrUpload 多条记录时,索引没有得到更新,但是在下一次计划的索引器运行后,它们被成功编入索引。请注意,我在 MergeOrUpload 之后获得了成功,但看不到更新/插入的记录。
这是我们从 Azure Search .net SDK 使用的调用 -
public async Task<DocumentIndexResult> UpsertRecords(string index, object[] records)
{
if (index.Equals("MyIndexName",StringComparison.CurrentCultureIgnoreCase))
{
var batch = IndexBatch.MergeOrUpload(records);
return await custDataIndex.Documents.IndexAsync(batch);
}
}