【发布时间】:2019-07-07 07:55:10
【问题描述】:
我有一个 Azure 搜索,它每 5 分钟索引一次 Azure 存储。由于存储有时也可能有删除,我正在寻找一种方法来处理这些。从文档中我了解到,除非您手动删除索引或重建索引。
完全重建可以,但我希望将停机时间降至最低。我一直在寻找这样做的策略。现在我想建立一个正在建立的第二个索引,一旦完成就删除旧的;但是感觉有点笨拙,因为我必须跟踪索引名称。
现在看起来像这样(简化):
//create new index
searchClient.Indexes.CreateOrUpdate(index);
//update indexer
var indexer = searchClient.Indexers.Get("testindexer");
indexer.TargetIndexName = index.Name;
searchClient.Indexers.CreateOrUpdate(indexer.Name);
//reset and run indexer
searchClient.Indexers.Reset(indexer.Name);
searchClient.Indexers.Run(indexer.Name);
//at this point the new index is used
//delete old index
searchClient.Indexes.Delete(oldIndex.Name);
【问题讨论】:
标签: c# indexing azure-cognitive-search