我正在构建一个Assets搜索引擎。 我需要为每个资产编制索引的数据分散到SQL数据库中的多个表中。 此外,应用程序中有许多事件会触发对资产索引字段的更新(在Draft,Rejected,Produced,...中)。
我正在考虑在SQL数据库中创建一个新的非规范化表,该表仅存在于Azure搜索索引中。 它将是Azure搜索索引字段的精确副本。 应用程序将负责通过各种事件处理程序填充和更新SQL表。 然后,我可以使用Azure SQL Indexer计划自动将数据导入Azure搜索索引。
优点:
CONS:
你看到其他任何利弊吗?
[编辑2017-01-26]
还有另一个重要的PRO供我们使用。
在开发过程中,我们会定期从Azure索引中添加/重命名/删除字段。在当前状态下,无法对Azure索引进行一些架构修改,我们必须删除并重新创建索引。
使用包含数据的专用表,我们只需向我们的索引器端点发出重置,并自动重新填充新索引。