在我的业务逻辑中,我首先需要检查是否存在Appengine Search 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_indexs只有当我们有更多时才会返回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