Appengine 搜索 API - InvalidRequest

Appengine Search API - InvalidRequest

我正在使用搜索 API (https://cloud.google.com/appengine/docs/standard/python/search/) 在 Google App Engine Python 标准环境上。

在我的应用程序中,我有几个搜索索引并使用游标分页查询它们(分页不能 return 超过 1000 个结果) https://cloud.google.com/appengine/docs/standard/python/search/cursorclass

有时我会随机得到以下异常:

InvalidRequest: Failed to execute search request "<search query>"

没有进一步的细节。如果我在某些查询的中间得到它,它将用这样的游标永远重现。

  1. 项目集在请求之间是不可变的(没有项目被添加或删除)
  2. 第一页查询总是可以的(只有用游标查询才会出现异常)
  3. 我没有使用任何排序
  4. 游标与之前查询接收到的游标完全相同,并且在请求之间没有损坏

有什么解决办法吗?

相关:

https://issuetracker.google.com/issues/35898069

https://issuetracker.google.com/issues/35895008

https://groups.google.com/forum/#!topic/google-appengine/tBHkZLeYTOI

What does this error message mean in appengine?

最后,我们能够找出导致随机错误的原因。

  1. 发出第一个请求 "A=1 AND B=2" 并接收
  2. 使用 发出第二个请求 "A=1 AND B=2" - 工作正常
  3. 使用 发出第二个请求 "B=2 AND A=1" - 相同的请求,但参数顺序与原始查询不匹配 - InvalidRequest,没有任何解释。