具有自己的 Azure 搜索索引器行版本的索引视图

Indexed View with its own rowversion for Azure Search indexer

我正在尝试设计将我的数据索引到 Azure 搜索中的最佳方式。假设我的 Azure SQL 数据库包含两个表:

在我的 Azure 搜索索引中,我不仅希望拥有产品(名称、类别、描述等),还希望拥有该产品的订单数(在评分配置文件中使用它,以提高搜索中的热门产品结果)。

我认为最好的方法是创建一个视图(索引视图?),其中包含产品的列和每个产品的订单计数,但我不确定我的视图(索引视图)是否?)可以有自己的 rowversion 列,每次计数更改时都会更改(订单可能被撤回 - 删除 - 并放置 - 插入)。

也许有更简单的方法可以解决我的问题?任何提示表示赞赏。

此致, 兆焦耳

是的,我相信您希望这样做的方式是一个很好的方法。我看到人们做的其他一些事情还包括类型。例如,您可以有一个 Collection 字段(它是一个字符串数组),可能称为 OrderTypes,您将加载该产品的所有关联订单类型。这样你就可以使用 Azure 搜索 $facets 功能来显示特定订单类型的总数。此外,您可以使用它来深入了解这些订单的细节。例如,您可以根据他们选择的订单类型进行过滤。当然,如果订单类型太多,那可能就不可行了。

无论如何,是的,我认为这会很好,而且不要忘记,如果你想定期更新这个计数,你可以简单地传递那个值(而不是发送整个产品字段)到让它更有效率。

视图不能有其 "own" rowversion 列 - 该列应来自产品或订单 table。如果您将该列编入索引,则高水位线更改跟踪策略将能够有效地捕获新的或更新的(但不是删除的)行。如果产品被删除,您应该考虑使用 http://azure.microsoft.com/en-us/documentation/articles/search-howto-connecting-azure-sql-database-to-azure-search-using-indexers-2015-02-28/

中所述的软删除方法

HTH, 尤金