Динамическая индексация в хранилище данных движка приложений Go - PullRequest
0 голосов
/ 28 августа 2018

Я работаю с Google App Engine с GoLang. Я использую хранилище данных для хранения данных. В моем приложении число запросов к хранилищу данных было высоким, поэтому изучите решения и реализуйте шардинг.

Для каждой сущности у меня было 5 осколков, и при вставке я получал нет между 0-4 и вставлял в entityname_no. Читая данные, я читаю их со всех четырех сущностей и обрабатываю.

Проблема, с которой я столкнулся, состояла в том, что у меня было два запроса get, в первом запросе у меня было два фильтра (String, bool), а во втором запросе (String, bool и date) у меня было три фильтра. Первый запрос выполняется нормально, но во втором запросе ожидается индекс для всех 5 объектов, где в index.yaml индекс был связан только с объектом.

Есть ли способ добавить динамическое индексирование, не обновляя index.yaml каждый раз?

1 Ответ

0 голосов
/ 28 августа 2018

К сожалению, в данный момент нет способа добавить динамические индексы. Документация гласит [1]: «Эти индексы обновляются всякий раз, когда изменяется сущность, поэтому результаты могут быть быстро возвращены, когда приложение выполнит запрос. Для этого хранилище данных должно заранее знать, какие запросы будет выполнять приложение. ”, Поэтому индексы должны быть установлены ранее и не являются динамическими.

[1] https://cloud.google.com/appengine/docs/flexible/go/configuring-datastore-indexes-with-index-yaml

...