Как выполнить частичный поиск по ключу строки в хранилище таблиц Azure? - PullRequest
0 голосов
/ 03 сентября 2018

Я использую хранилище таблиц Azure вместе с узлом js для приложения по продаже билетов. Я использую имя клиента в качестве ключа раздела и идентификатор заявки в качестве ключа строки. Например:

RowKey: {'_': 232344}

Я хочу, чтобы ключ строки был комбинацией тикетида и телефонного номера клиента. Пример:

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);

Здесь я застрял, потому что не знаю, как выполнить частичный поиск по ключу строки.

1 Ответ

0 голосов
/ 03 сентября 2018

Есть два возможных решения:

  • Используйте номер телефона вместо идентификатора билета в качестве PartitionKey. Если это так, поиск номера телефона среди билетов может быть преобразован в простое сканирование разделов. Это более эффективный способ.
  • Продолжайте использовать идентификатор билета в качестве PartitionKey и используйте формат RowKey PhoneNumber_TicketId. Если это так, поиск номера телефона среди заявок может быть преобразован в строку фильтра, например RowKey ge '9393944392' and RowKey lt '9393944393', которая является полным сканированием таблицы, поскольку в строке не фильтруется PartitionKey. Это менее эффективный способ, так как происходит полное сканирование таблицы.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...