Azure搜索 - 在SQL中创建专用搜索表,以便与索引器

时间:2016-11-17 16:26:38

标签: azure-search

我正在构建一个Assets搜索引擎。 我需要为每个资产编制索引的数据分散到SQL数据库中的多个表中。 此外,应用程序中有许多事件会触发对资产索引字段的更新(在Draft,Rejected,Produced,...中)。

我正在考虑在SQL数据库中创建一个新的非规范化表,该表仅存在于Azure搜索索引中。 它将是Azure搜索索引字段的精确副本。 应用程序将负责通过各种事件处理程序填充和更新SQL表。 然后,我可以使用Azure SQL Indexer计划自动将数据导入Azure搜索索引。

优点:

  • 我们习惯于处理sql表操作,因此应用程序代码仍然是标准的,无需学习Azure Search API
  • 事务和搜索模型都在同一个SQL事务(原子)中更新。然后,Indexer以最终一致的方式更新索引,并处理重试逻辑。
  • 内置支持使用SQL集成更改跟踪策略进行更改检测

CONS:

  • 索引数据空间使用情况在SQL数据库中重复
  • 延迟索引更新(至少5分钟)

你看到其他任何利弊吗?

[编辑2017-01-26]

还有另一个重要的PRO供我们使用。

在开发过程中,我们会定期从Azure索引中添加/重命名/删除字段。在当前状态下,无法对Azure索引进行一些架构修改,我们必须删除并重新创建索引。

使用包含数据的专用表,我们只需向我们的索引器端点发出重置,并自动重新填充新索引。

0 个答案:

没有答案