索引视图,具有自己的Azure搜索索引器的rowversion

时间:2015-03-13 16:55:17

标签: sql tsql azure indexed-view azure-search

我正在尝试设计将数据编入Azure Search的最佳方法。假设我的Azure SQL数据库包含两个表:

  • 产品
  • 订单

在我的Azure搜索索引中,我想要的不仅仅是产品(名称,类别,描述等),还包括此产品的订单数量(在评分配置文件中使用此功能,以增加搜索结果中的热门产品)

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

也许有一些更容易解决我的问题?任何提示都表示赞赏。

此致 MJ

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

中所述的软删除方法

HTH, 尤金