在不同字段之间,仅支持 AND 运算符。一个有效示例是 sender.name = "users/1234567890" AND is_unread()。AND 一词是可选的,如果省略,则表示隐含。例如,sender.name =
"users/1234567890" is_unread() 是有效的,并且与上一个示例等效。一个无效的示例是 sender.name = "users/1234567890" OR
is_unread(),因为不支持在不同字段之间使用 OR。
在同一字段中:
createTime 仅支持 AND,并且只能用于表示区间,例如 createTime >= "2022-01-01T00:00:00+00:00" AND
createTime < "2023-01-01T00:00:00+00:00"。
sender.name 仅支持 OR 运算符,例如:sender.name = "users/1234567890" OR sender.name = "users/0987654321"。
space.name 仅支持 OR 运算符,例如:space.name = "spaces/ABCDEFGH" OR space.name = "spaces/QWERTYUI"。
space.display_name 支持运算符 AND 和 OR,但不支持同时使用这两个运算符。例如:space.display_name:Project AND space.display_name:Tasks 会返回显示名称同时包含 Project 和 Tasks 的聊天室中的消息,而 space.display_name:Project OR space.display_name:Tasks 会返回显示名称包含 Project 或 Tasks 或同时包含这两者的聊天室中的消息。
annotations.user_mentions.user.name 支持运算符 AND 和 OR,但不支持两者混用。例如:annotations.user_mentions.user.name:"users/1234567890" AND
annotations.user_mentions.user.name:"users/0987654321" 仅返回同时提及这两位用户的消息,而 annotations.user_mentions.user.name:"users/1234567890" OR
annotations.user_mentions.user.name:"users/0987654321" 则返回提及其中一位用户或同时提及这两位用户的消息。
在同一查询中组合使用 AND 和 OR 运算符时,必须使用圆括号来明确运算符优先级。例如:(sender.name="users/me" OR sender.name="users/123456") AND is_unread()。否则,括号是可选的。
以下示例查询有效:
"Pending reports" AND createTime >= "2023-01-01T00:00:00Z"
sender.name = "users/example@gmail.com"
annotations.user_mentions.user.name:"users/0987654321"
attachment:* AND space.name = "spaces/ABCDEFGH"
tasks AND is_unread() AND sender.name = "users/1234567890"
"things to do" "urgent"
(sender.name = "users/1234567890")
AND (createTime < "2023-05-01T00:00:00Z")
tasks AND space.name = "spaces/ABCDEFGH" AND has_link()
"project one" is_unread()
space.display_name:Project tasks