我需要运行这样的搜索查询:
SELECT from results WHERE owner=mike,john,tom ...etc
它应该提供这些用户名拥有的项目的串联。查询中可能有大约 100-200 个用户名。使用用户名作为过滤器(例如 filter(1)=mike&filter(2)=john 等)使用全文搜索 API(我已经将它用于关键字查询)来执行此操作是可行的,或者我应该尝试某种数据存储连接手术 ?
我需要运行这样的搜索查询:
SELECT from results WHERE owner=mike,john,tom ...etc
它应该提供这些用户名拥有的项目的串联。查询中可能有大约 100-200 个用户名。使用用户名作为过滤器(例如 filter(1)=mike&filter(2)=john 等)使用全文搜索 API(我已经将它用于关键字查询)来执行此操作是可行的,或者我应该尝试某种数据存储连接手术 ?
您可以像这样构造一个查询:
owner:mike OR owner:john OR owner:tom
等等,但这对于大量可能的所有者值来说效率不高。
相反,请考虑您是否可以根据某些应用程序语义对所有者进行分组(例如,一些所有者在 'usergroup1' 中,一些所有者在 'usergroup2' 中,等等),然后使用 eg 查询文档usergroup:usergroup1
。
或者,如果您可以为每个所有者分配一个数值(这对您的应用程序有意义),您可以使用数字比较器,例如 owner_number < 10
.
我猜第一个查询是 MySQL 查询,对吧?如果字段“所有者”在 MySQL 查询中有索引,那么您可以使用以下结构:
SELECT from results WHERE owner IN ('mike','john','tom')
关于APP Engine我不能说太多,但肯定你需要使用过滤器。