查询 RowKey 的 EndsWith() 在哪里?

Querying where RowKey EndsWith()?

我有一个存储 table,它是关注另一个特定用户的用户的索引。为此,我根据 this post 上的指南,将 PartitionKey 设置为被关注用户的 ID,并将 RowKey 设置为他们关注日期的刻度,并附加了以下用户的 ID .这很好用。这是它的外观示例。

// FollowerIndex
PartitionKey                            RowKey
56138dad-e2db-43ac-8ffe-eac4846bf01a    2519471107153765942_31d4d0e5-2e48-489f-99fd-ead58a5fd480
56138dad-e2db-43ac-8ffe-eac4846bf01a    2519471107153765942_32fd17ec-fac2-44f8-986e-4e1fc8a05751
56138dad-e2db-43ac-8ffe-eac4846bf01a    2519471107153765942_f9816107-23ea-4ed7-a900-7465c0d10f50
f9816107-23ea-4ed7-a900-7465c0d10f50    2519471107153789651_32fd17ec-fac2-44f8-986e-4e1fc8a05751

我现在的问题是,我需要查找一个给定用户 ID 是否是另一个给定用户 ID 的关注者。为此,我希望有一个 EndsWith 查询可以使用,这样我就可以使用点查询来提高性能,因为可能会有很多 'follower checks' 被完成。似乎并非如此。

// request.UserId = "56138dad-e2db-43ac-8ffe-eac4846bf01a";
// request.FollowerUserId = "31d4d0e5-2e48-489f-99fd-ead58a5fd480";

var query = TableQuery.CombineFilters(
    TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equals, request.UserId),
    TableOperators.And,
    TableQuery.GenerateFilterCondition("RowKey", QueryComparisons.???, request.FollowerUserId)
);

我正在考虑添加第二个无序索引,其中包含 RowKey 作为以下用户的 ID,仅用于查找。有没有办法实现我最初的意图,或者为此设置两个索引会更好(在性能和可扩展性方面)?

感谢任何帮助。

为了在 Azure TableStorage 上存储图形关系,有一个名为 AzureGraphStore 的简洁扩展,它的效果非常好。

它基本上存储了不同对 PK/RK 的重复信息,因此您可以轻松地进行查询,例如:谁在关注 X? Y跟随谁? A在跟着B吗?

它可能会彻底解决您的问题:)