私のビジネス ロジックでは、最初に 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 個のインデックスに制限されました。私は何かが欠けているに違いない。
私の質問は 2 つあります。
インデックスが存在するかどうかを確認するより良い方法はありますか? (私のやり方は間違っているように感じます)
明らかに多いのに、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