有没有办法在 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 插件