概述
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
- 接著,搜尋會嘗試比對每個字符的完整文字與索引值
- 此時系統會對「合約標題」執行更複雜的字符化作業 (請見下方)
- 使用包含搜尋,表示所傳回的資料集中包括的合約符合至少一個可搜尋欄位中的至少一個字符
- 傳回的資料集會依相關度排序,最相關的搜尋結果會顯示於最上方。
合約標題欄位
如前所述,由於額外的「自訂」分詞器主要會將內容分隔符號 (相較於明確的字元) 字符化,因此「合約標題」欄位會執行較精細的字符化作業。這個自訂分詞器與標準分詞器有以下幾方面的差異:
- 會產生前置詞字符 (最多 10 個字元) - 前置詞字符是任何標準字符的遞增字串。例如,如果標準字符為 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 | agreementId | 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」將與所有可搜尋的欄位比對。 |