概述
通过 Acrobat Sign,可以进行复杂搜索以查找用户协议中的内容。位于“管理”页面上的搜索栏将返回与为所选内容源提供的任意字符串相匹配的所有事务。
- 如果您正在查看“您的协议”,则针对您的内容进行搜索。如果您正在查看共享帐户,则搜索该共享帐户的内容
在创建/更新事务时,将对以下字段中的内容编制索引:
- 标题 - 协议标题。
- 注释 - 参与者标注的私人协议注释,其他人不可见。
- 消息 - 该参与者可见的消息列表(包括公共消息和私人消息)。
- 原始文件名 - 与协议关联的已上载文件的原始名称。
- 电子邮件 - 收件人(包括抄送人)或发件人的电子邮件地址。
- 全名 - 收件人(包括抄送人)或发件人的名字和姓氏。
- 职务 - 收件人(包括抄送人)或发件人在其公司内部的职务。
- 公司名称 - 收件人(包括抄送人)或发件人的公司或组织名称。
- 收件人组名称 - 收件人所在的临时协议组的名称。
- 文本字段内容 - 表单中由用户提供的文本字段内容。
- 共享者全名 - 协议共享者的全名。在非共享情况下,这是用户的名称。
- 共享者的收件人组名称 - 协议共享者的收件人组名称。在非共享情况下,这是用户的收件人组名称。
- 外部 ID - 发件人为协议分配的任何形式的 ID,但通常采用“<groupID>:<ID>”形式。“外部 ID”在对协议创建 API 的调用中传递。
- 外部组 ID - 发件人为协议分配的任何形式的组 ID,通常用作外部 ID 的前缀。“外部组 ID”在对协议创建 API 的调用中传递。如果设置“外部组 ID”参数,则需要设置“外部 ID”。
- 事务 ID - Acrobat Sign 在创建时分配给协议的 ID。
文本搜索的工作方式
如果要搜索字符串:“A simple fish”
- Acrobat Sign 会使用空格作为分隔符来“标记”此字符串。上述示例字符串分为三个标记:A、simple 和 fish
- 字符串查询中的字符属于以下三种不同类型之一:字母、数字或分隔符。
- 被视为分隔符(除空格之外)的字符包括:~ ` ! @ # $ % ^ & * ( ) - + = { } [ ] | \ . , : ; " ' < > ? /
- 如果句点、冒号和撇号前后的字符属于同一类型,则该符号仍然是标记的一部分。
- 整个查询字符串周围的引号不是分隔符,而是用来指定文本字符串值(短语)
- 查询字符串内部的引号则是分隔符,并不指定文本字符串值。
- 去除了大小写区分。例如:a、simple、 和 fish
- 然后,搜索会尝试将每个标记的全文与索引值匹配
- “协议标题”的标记处理过程更为复杂(请参阅下文)
- 使用“包含式”搜索,意味着与至少一个可搜索字段中的至少一个标记匹配的每个协议都包含在返回的数据集中
- 返回的数据集按相关性得分进行分类,最相关的搜索结果位于顶部。
“协议标题”字段
如上所述,“协议标题”字段由于添加了主要用来标记上下文分隔符的“自定义”标记器(而不是明确的字符)而具有更复杂的标记。此自定义标记器与标准标记器存在以下不同之处:
- 将生成前缀标记(最多十个字符)- 前缀标记是任何标准标记的递增字符串。例如:如果标准标记是 fish,则递增标记为:f、fi、fis 和 fish
- 这样就允许搜索部分字符串,前提是以标记的第一个字符开头
- 将忽略中间字符串匹配。例如:搜索 rent 将不会匹配单词 apparently
- 在非字母数字字符处拆分标记。例如:字符串 Super_Duper 会生成标记 Super 和 Duper
- 在标准标记器中,下划线不是分隔符
- 在字母大小写转换处拆分标记。例如:字符串 PowerShot 将生成标记 Power 和 Shot
- 在字母-数字转换处拆分标记。例如:字符串 XL500 将生成标记 XL 和 500
- 从每个标记中删除前导或尾部分隔符。例如:字符串 XL---42+'Autocoder' 将生成标记 XL、42 和 Autocoder
- 从每个标记的末尾删除英文所有格 ('s)。例如:字符串 Dave's 将生成标记 Dave
请注意,将标准和自定义标记器结合使用允许您搜索完整的标记字符串(得益于标准标记器)和前缀标记(得益于自定义标记器)。但是,您仍无法匹配跨定界符的前缀标记。
示例:如果您有一个名为 My_NDA 的协议
- 标准标记器将生成一个类似以下内容的标记:my_nda
- 自定义标记器将生成一系列标记:m、my、n、nd、nda、my_、my_n、my_nd、my_nda
示例 2:如果您有一个名为 XL500 的协议
- 标准标记器将生成一个类似以下内容的标记:xl500
- 自定义标记器将生成一系列标记:xl500、x、xl、5、50、500、 xl5、xl50
短语匹配
如果字段中出现任何标记(但不一定是全部标记),则“常规近似匹配”查询将进行匹配,且标记顺序无关紧要,因为这些标记不需要一起显示.
当需要在一个或多个可搜索字段中搜索精确短语(不区分大小写)时,应使用短语匹配查询。通过短语匹配,我们能够匹配同一字段中多个标记出现的位置,这些标记按引号中指定的顺序依次显示。
短语匹配查询语法格式:
"<phrase_match_query>" |
---|
或
'<phrase_match_query>' |
---|
如果查询语法不遵循短语匹配查询语法的规则,则将在所有可搜索字段中执行常规近似匹配查询。
例如,查询
“Study Group” |
---|
查询结果将匹配在任何可搜索字段中包含短语“Study Group”的协议。请注意,短语“study - group”不会与此查询匹配,因为与“Study Group”相比,它不是不区分大小写的精确短语。
短语匹配可以出现在搜索查询中的任何位置。例如,
标题:(math AND "course materials" AND "study group") |
---|
将匹配标题:“Course materials for MATH 101 Study Group”,因为该标题包含关键字“MATH”以及短语“Course Materials”和“Study Group”。
字段名称前缀
仅搜索用户协议中的一个特定字段时,应使用字段名称前缀查询。
字段名称前缀查询必须包含一个字段名称前缀,后跟搜索查询。字段名称前缀查询语法格式:
<field_name>:<query> |
---|
字段名称前缀可以出现在标记或查询括号部分的前面。例如,在这个搜索查询中
title: ( Hello AND "Beautiful World" AND "My World" ) |
---|
所有标记均与协议标题字段匹配。
在这个搜索查询中
title: Hello AND "Beautiful World" AND "My World" |
---|
只有 'Hello’ 一词具有字段名称前缀,且此单词仅与协议标题字段匹配。其余的单词和短语与所有可搜索字段匹配。
如果未指定 <field_name>,则将查询短语匹配支持的所有字段。否则,仅查询 <field_name> 字段。
如果查询语法不遵循字段名称前缀查询语法的规则,则协议搜索将使用整个查询作为搜索查询,且在所有可搜索字段中执行搜索。
例如,字段名称前缀查询:
title: ( Hello World ) |
---|
只对包含协议标题的字段执行搜索。
以下是字段名称前缀查询支持的前缀列表。字段名称前缀不区分大小写。
字段内容 |
字符串查询字段名称前缀 |
字段内容描述 |
标题 |
title* |
协议标题。 |
注释 |
note |
参与者标注的私人协议注释,其他人不可见。 |
消息 |
message |
该参与者可见的消息列表(包括公共消息和私人消息)。 |
原始文件名 |
originalFileName |
与协议关联的已上载文件的原始名称。 |
电子邮件 |
email** |
收件人(包括抄送人)或发件人的电子邮件地址。 |
全名 |
fullName*** |
收件人(包括抄送人)或发件人的名字和姓氏。 |
职务 |
jobTitle |
收件人(包括抄送人)或发件人在其公司内部的职务。 |
公司名称 |
companyName |
收件人(包括抄送人)或发件人的公司或组织名称。 |
收件人组名称 | recipientGroupName |
收件人所在的临时协议组的名称。 |
文本字段内容 | textFieldContent |
表单中由用户提供的文本字段内容。 |
共享者全名 | sharerFullName | 协议共享者的全名。在非共享情况下,这是用户的名称。 |
共享者的收件人组名称 | sharerRecipientGroupName | 协议共享者的收件人组名称。在非共享情况下,这是用户的收件人组名称。 |
外部 ID | externalId |
发件人为协议分配的任何形式的 ID,但通常采用“<groupID>:<ID>”。“外部 ID”在对协议创建 API 的调用中传递。 |
外部组 ID | externalGroupId |
发件人为协议分配的任何形式的组 ID,通常用作外部 ID 的前缀。“外部组 ID”在对协议创建 API 的调用中传递。如果设置“外部组 ID”参数,则需要设置“外部 ID”。 |
事务 ID | 协议 ID | Acrobat Sign 在创建协议时分配给协议的 ID。 |
为了实现向后兼容性,某些字段名称前缀具有别名,这些别名在功能上等同于原始字段名称前缀。以下别名已弃用,最终将被删除:
* 可使用字段名称前缀“name”代替“title”。
** 可使用字段名称前缀“participantEmail”代替“email”。
*** 可使用字段名称前缀“participantName”代替“fullName”。
通配符
可以使用通配符(星号 *)执行前缀匹配,然后在标记中后跟无限制字符数。通配符扩展是在运行时执行的昂贵操作,因此,必须遵循以下语法规则才能使用此功能:
- 不允许使用前导通配符。
- 标记中间不允许使用通配符。
- 具有通配符扩展运算符的标记需要字段名称前缀。
- 在查询中不能多次使用通配符运算符。
- 如果执行时间超过五秒钟,将返回包含通配符扩展的查询。
例如,查询
title:myh* |
---|
匹配标题字段标记
myhost |
---|
和
通配符扩展是一项昂贵的操作。如果未能明智使用,将会耗费大量系统资源,且您可能需要花费较长时间等待搜索结果。为了避免出现这些问题,SGQL 限制通配符的使用,从而消除了最昂贵和消耗资源的用例。您的标记越具体,您的搜索越有效。搜索特定单词或短语通常会比使用通配符搜索更高效。
布尔表达式
SGQL 支持以下布尔运算符:AND、OR 和 NOT,及使用括号对这些运算符进行分组。运算符必须大写。
在两个标记之间总是隐含地使用 OR 运算符。例如,
foo bar |
---|
等同于
foo OR bar |
---|
除非为了出于实现清晰的原因想要包括 OR 运算符,否则无需指定它。
NOT 运算符仅适用于紧跟 NOT 的标记。要将 NOT 运算符应用于多个标记,您必须将这些标记括在括号中。
下表介绍了评估布尔表达式采用的顺序。
订单 |
搜索命令 |
---|---|
1 | 括号内的表达式 |
2 | NOT 子句 |
3 | OR 子句 |
4 | AND 子句 |
在下表中,您可以找到在未提供分组运算符(括号)的情况下说明运算符优先级的语义等价查询的示例。
搜索查询 | 等价重新编写搜索查询 | 注释 |
---|---|---|
foo AND bar baz | foo AND ( bar OR baz ) | 运算符 OR 是隐式的,且除非在为了出于实现清晰的原因想要添加,否则不用使用。 |
foo NOT bar baz | foo OR ( NOT bar ) OR baz | 运算符 NOT 应用于以下标记或查询的括号部分。 |
foo NOT bar baz AND xyz | ( foo OR ( NOT bar ) OR baz ) AND xyz | |
title: ( Hello AND "Beautiful World" "My World" ) | title:Hello AND ( title:"Beautiful World" OR title:"My World" ) | 字段名称前缀应用于以下标记或查询的括号部分。 |
title: Hello AND note: "Beautiful World" "My World" | title:Hello AND ( note:"Beautiful World" OR "My World" ) | 短语 "My World" 将与所有可搜索字段匹配。 |