如何在azure表存储中对行键进行部分搜索?

问题描述 投票:0回答:1

我使用Azure表存储和节点js作为票务应用程序。我使用客户端的名称作为分区键,并将票证ID用作行键。例如:

RowKey: {'_': 232344}

我希望行键是ticketid和客户电话号码的组合。例如:

RowKey: {'_': 232344_9393944392} or RowKey: {'_': 2323449393944392}

并能够使用客户的电话号码对行密钥进行部分搜索,并检索客户提出的所有票证。我怎么能在节点js中做到这一点?

以下代码是我查询表存储的方式。

const azure = require('azure-storage');
const query = new azure.TableQuery().where('PartitionKey eq ?',client).and('Rowkey eq?',ticketId);

这是我被困的地方,因为我不知道如何对行键进行部分搜索。

node.js azure-storage azure-table-storage
1个回答
0
投票

有两种可能的解决方案:

  • 使用电话号码而不是Ticket Id作为PartitionKey。如果是这样,则可以将票证中的电话​​号码转换为简单的分区扫描。这是一种更有效的方式。
  • 继续使用Ticket Id作为PartitionKey,并使用RowKey格式PhoneNumber_TicketId。如果是这样,在票证中搜索电话号码可以转换为过滤字符串,例如RowKey ge '9393944392' and RowKey lt '9393944393',这是一个全表扫描,因为字符串中没有过滤PartitionKey。由于全表扫描发生,这是一种效率较低的方法。
© www.soinside.com 2019 - 2024. All rights reserved.