是否可以使用 Azure 搜索将数据推送(使用 API)和拉取(使用索引器)数据到同一个索引中?

Is it possible to Push (using API) and Pull (using indexer) data into the same Index with Azure Search?

我在 Azure 搜索中有一个名为 Hotels 的索引。

我在 Azure SQL 中有一家酒店 table,它的架构与 Azure 搜索中找到的酒店索引的副本相同。

我从后端推送到 Azure SQL table 和 create/update/delete 的 Azure 搜索。

在一个场景中,我的数据被推送到 Azure SQL 但未能被推送到 Azure 搜索是否可以让我的 Azure SQL Hotels table 成为索引器,例如索引器可以将无法从我的后端推送的数据同步到我的 Azure 搜索索引(酒店)吗?

是的,您可以混合使用推和拉,也可以使用多个针对同一索引的拉索引器。当部分数据在一个数据源中而部分数据在另一个数据源中时,我们经常看到这种情况,其中索引是它们聚合的点,由它们的键协调。

您描述的模式并不常见,但一般来说它应该有效。您必须考虑您的写入与索引器写入冲突的情况,并确保您所做的写入最终获胜。此外,如果您沿着这条路走下去,请确保配置更改检测(如果您删除行,则删除检测)策略,以便我们从 SQL 增量索引,并且不会在每个 运行.[= 上准备好所有内容。 10=]

如果您担心丢失写入,另一种方法是将所有写入推送到队列中,然后从队列中拉出并放入 Azure 搜索中。这样你就有了一个写入流而不是两个。