有没有办法在 Google AppEngine Search API 中查询字段至少包含一个搜索项的文档?

Posted

技术标签:

【中文标题】有没有办法在 Google AppEngine Search API 中查询字段至少包含一个搜索项的文档?【英文标题】:Is there a way to query Google AppEngine Search API for documents where a field contains at least one of the search items? 【发布时间】:2022-01-19 22:10:39 【问题描述】:

例如,假设我们在 Datastore 中有 3 个动物园。

(id=23, animals=["Horse", "Elephant", "Giraffe"] (id=42, animals=["Alpaca", "Turtle", "Panda"] (id=77, animals=["Wolf", "Alligator", "Tiger"]

我想查询至少包含以下动物之一的动物园:"Horse", "Elephant", "Alpaca"。我需要这个查询来返回动物园 23 和 42,而不是动物园 77。

到目前为止尝试过:

animals: "Horse" OR animals: "Elephant" OR animals: "Alpaca" 适用于较小的查询,但在实际的现实生活中,这样构造的查询很容易超过 Google 规定的 2000 字节查询大小限制。 ("Horse" OR "Elephant" OR "Alpaca") IN animals 返回 0 个结果。 animals IN ("Horse" OR "Elephant" OR "Alpaca") 返回 0 个结果。

限制:必须是固定数量的查询,最好是单个。查询量随搜索项数量增长的解决方案无法扩展,并且很容易导致来自用户的每个 HTTP 请求产生数百个 Datastore 查询。这是不可接受的。

有什么建议可以实现吗?

【问题讨论】:

【参考方案1】:
animals: ("Horse" OR "Elephant" OR "Alpaca")

【讨论】:

请将您的答案标记为已接受。

以上是关于有没有办法在 Google AppEngine Search API 中查询字段至少包含一个搜索项的文档?的主要内容,如果未能解决你的问题,请参考以下文章

Django 模板在 Google Appengine 上没有 IN 运算符?

如何在没有AppEngine for Google云端存储的情况下获取服务网址?

是否可以在 Google appengine 标准环境中使用 Gorilla mux 路由器?

Maven + App Engine + Google Eclipse 插件

Google App Engine:ImportError:没有名为 appengine.tools 的模块

有没有办法在 App Engine 中跟踪 Cloud SQL 调用? (哥朗)