В моей бизнес-логике я сначала должен проверить, существует ли индекс API Appengine Search API. Если он существует, я определяю длину.Определите, существует ли указатель API поиска
for index in search.list_indexes(fetch_schema=False):
if name == index.name:
indexed = True
Проблема в том, что весь список не возвращается. Поэтому я пробовал следующее:
for index in search.list_indexes(fetch_schema=False, limit=500):
logging.info("sent name: " + name + " : official index name: " + index.name)
Результаты состояли в том, что он ограничил его до 100 указателей. Я должен что-то упустить.
Мой вопрос два раза:
Есть ли лучший способ проверить, если индекс существует? (мой способ чувствует себя не так)
Почему возможно, что list_indexes возвращает 100, если у нас явно больше?
Редактировать: -----------------------------------------
на основе предложения @ skreft, я обновил свой код с этим:
for index in search.list_indexes(fetch_schema=False, include_start_index=True, start_index_name="some_index", limit=1000):
logging.info("sent name: " + name + " : official index name: " + index.name)
if name == index.name:
indexed = True`enter code here`
Но проблема в том, что я получаю сообщение об ошибке очень таинственное, и я следовал документы довольно явно. Кто-нибудь еще это случается? (Ошибка ниже):
Traceback (most recent call last):
File "/base/data/home/apps/s~searchbertha-hrd/82.359784956262345840/models.py", line 1898, in build_searchable_index
for index in search.list_indexes(fetch_schema=False, include_start_index=True, start_index_name=name, limit=1000):
File "/base/python_runtime/python_lib/versions/1/google/appengine/api/search/search.py", line 675, in list_indexes
raise _ToSearchError(e)
InvalidRequest
спасибо за предложение. Я попробовал это и отредактировал мой вопрос выше. Я нахожусь в тупике по очень загадочному сообщению _ToSearchError (e). Мысли? – user1453956
Попробуйте изменить лимит на 100. Это сработало для меня. Кроме того, в вашем случае я считаю, что более целесообразно использовать index_name_prefix. –
index_name_prefix сделал трюк. Большое спасибо. – user1453956