Panoramica
Acrobat Sign consente ricerche complesse per trovare i contenuti negli accordi dell’utente. La barra di ricerca, disponibile nella pagina Gestisci, restituisce tutte le transazioni che corrispondono alla stringa fornita per l’origine di contenuti selezionata.
- Se stai visualizzando “I tuoi accordi”, la ricerca viene eseguita nei tuoi contenuti. Se stai visualizzando un account condiviso, la ricerca viene eseguita nei contenuti dell’account condiviso.
Quando viene creata o aggiornata una transazione, viene indicizzato il contenuto dei campi seguenti:
- Titolo: titolo dell’accordo.
- Nota: una nota di accordo privata inserita dal partecipante e non visibile a nessun altro.
- Messaggio: elenco di messaggi visibili al partecipante (comprende messaggi pubblici e privati).
- Nome file originale: nome originale di un file caricato associato all’accordo.
- E-mail: indirizzo e-mail del destinatario (anche in Cc) o del mittente.
- Nome completo: nome e cognome di destinatario (anche in Cc) o mittente.
- Titolo: titolo professionale del destinatario (anche in Cc) o del mittente all’interno della società.
- Ragione sociale: nome della società o organizzazione del destinatario (anche in Cc) o del mittente.
- Nome gruppo destinatari: nome del gruppo di accordi ad-hoc a cui i destinatari possono appartenere.
- Contenuto campo testo: contenuto del campo di testo inserito nel modulo dall’utente.
- Nome completo di chi ha condiviso: nome completo di chi ha condiviso l’accordo. Nel caso in cui non ci sia condivisione questo è il nome dell’utente.
- Nome gruppo destinatari di chi ha condiviso: nome del gruppo di destinatari di chi ha condiviso l’accordo. Nel caso in cui non ci sia condivisione questo è il nome del gruppo dell’utente.
- ID esterno: ID assegnato dal mittente all’accordo che può essere in qualunque forma, ma solitamente nella forma “<groupID>:<ID>”. L’ID esterno viene passato nella chiamata all’API di creazione dell’accordo.
- ID gruppo esterno: ID gruppo assegnato dal mittente all’accordo che può essere in ogni forma, solitamente utilizzato come prefisso per l’ID esterno. L’ID gruppo esterno viene passato nella chiamata all’API di creazione dell’accordo. Se imposti il parametro ID gruppo esterno, devi impostare anche l’ID esterno.
- ID transazione: ID assegnato all’accordo da Acrobat Sign al momento della creazione.
Funzionamento della ricerca testuale
Se si cerca la stringa “Un semplice pesce”
- Acrobat Sign suddivide la stringa in singoli termini (tokenizzazione) utilizzando gli spazi come delimitatori. In questo esempio, la stringa viene suddivisa in tre token: un, semplice e pesce.
- I caratteri nella stringa di query possono essere di tre tipi: lettera, numero o delimitatore.
- I caratteri considerati delimitatori (diversi da spazi) sono: ~ ` ! @ # $ % ^ & * ( ) - + = { } [ ] | \ . , : ; " ' < > ? /
- Punti, due punti e apostrofi fanno parte del token se i caratteri che precedono o seguono tale simbolo sono dello stesso tipo.
- Le virgolette che contengono l’intera stringa di query non sono delimitatori e indicano un valore di stringa letterale (frase).
- Le virgolette all’interno di una stringa di query sono delimitatori e non indicano un valore di stringa letterale.
- La distinzione tra maiuscole e minuscole è stata rimossa. ad es.: un, semplice, e pesce
- La funzione di ricerca tenta quindi di trovare una corrispondenza per il testo completo di ogni token con un valore indicizzato.
- La tokenizzazione è più complessa per il Titolo dell’accordo (vedi di seguito)
- Viene utilizzata una ricerca inclusiva: ogni accordo che corrisponde ad almeno un token da almeno un campo ricercabile viene incluso nel set di dati restituito.
- Il set di dati restituito viene ordinato secondo un punteggio di rilevanza dove il risultato di ricerca più rilevante è al primo posto.
CAMPO TITOLO ACCORDO
Come descritto in precedenza, al campo Titolo accordo viene applicata una tokenizzazione più sofisticata grazie a un meccanismo “personalizzato” aggiuntivo che viene applicato principalmente a delimitatori di contesto (anziché a caratteri espliciti). Questa tokenizzazione personalizzata è diversa da quella standard nei seguenti aspetti:
- Vengono generati token di prefissi (fino a dieci caratteri): un token di prefisso è una stringa incrementale di un token standard. Esempio: se il token standard è pesce, i token incrementali sono: p, pe, pes e pesce.
- Questo consente di cercare stringhe parziali, a condizione di iniziare dal primo carattere del token.
- Vengono ignorate le corrispondenze per le porzioni interne della stringa. Per esempio: la ricerca del termine versa non restituirà la parola attraversare
- I token vengono divisi in corrispondenza di caratteri non alfanumerici. Esempio: la stringa: Super_Duper genera i token: Super e Duper
- I caratteri di sottolineatura non sono considerati delimitatori nella tokenizzazione standard.
- I token vengono divisi in corrispondenza di transizioni maiuscole/minuscole. Per esempio: la stringa mappamondo genera i token: mappa e mondo
- I token vengono divisi in corrispondenza di transizioni lettera/numero. Per esempio: la stringa XL500 genera i token: XL e 500.
- Vengono rimossi da ogni token eventuali delimitatori iniziali o finali. Esempio: la stringa XL---42+'Autocoder' genera i token XL, 42 e Autocoder
- Viene rimossa la notazione del genitivo sassone (’s) dalla fine di ogni token. Per esempio: la stringa Dave's genera il token: Dave
Nota che la combinazione di tokenizzazione standard e personalizzata consente di cercare la stringa di token completa (grazie alla tokenizzazione standard) e i token di prefisso (grazie alla tokenizzazione personalizzata). Comunque, non troverai corrispondenza per un token di prefisso che si estende oltre un delimitatore.
Esempio: se hai un accordo denominato My_NDA
- la tokenizzazione standard produrrebbe il token my_nda
- La tokenizzazione personalizzata produrrebbe una serie di token:m, my, n, nd, nda, my_, my_n, my_nd, my_nda
Esempio 2: se hai un accordo denominato XL500
- la tokenizzazione standard produrrebbe un token simile a xl500
- La tokenizzazione personalizzata produrrebbe una serie di token: xl500, x, xl, 5, 50, 500, xl5, xl50
Ricerca con una sintassi di query speciale
Come descritto nella sezione precedente, la ricerca degli accordi viene eseguita con una corrispondenza approssimativa tra tutti i campi ricercabili di un accordo. Il contenuto dei campi ricercabili viene tokenizzato e, al momento della ricerca, vengono cercati i token che corrispondono alla stringa di query. Per tali token, la ricerca degli accordi considera anche un eventuale prefisso composto da un massimo di dieci caratteri. Se in un accordo viene trovata almeno una corrispondenza del token, tale accordo verrà visualizzato nei risultati della ricerca. Il set di dati restituito viene ordinato secondo un punteggio di rilevanza dove il risultato di ricerca più rilevante è al primo posto.
Tuttavia, le corrispondenze di un intero valore di campo, le corrispondenze di una frase da un valore di campo, le ricerche per accordi che non contengono un token particolare, le ricerche per accordi che contengono più token contemporaneamente (non una frase) possono essere ottenute solo con una sintassi speciale. Sign Generic Query Language (SGQL) è stato sviluppato per soddisfare le esigenze dei clienti per queste funzionalità che richiedono una sintassi speciale.
CARATTERI E PAROLE RISERVATI
SGQL ha sette caratteri riservati:
* ( ) \ " ' : |
---|
Questi caratteri riservati vengono utilizzati come operatori e definiscono le funzioni del linguaggio in una query di ricerca. Se un carattere riservato non viene utilizzato correttamente, viene restituito un errore di sintassi.
Per utilizzare i caratteri riservati come caratteri normali in una query di ricerca, è necessario che siano preceduti da escape. Ad esempio, nella query di ricerca
\( \"bea\:u\*ful\"\\ \) |
---|
tutti i caratteri riservati sono preceduti da escape e vengono trattati come caratteri normali.
SGQL contiene anche tre parole riservate come operatori:
AND OR NOT |
---|
Gli operatori devono essere in lettere maiuscole. Per utilizzare gli operatori come token normali in una query di ricerca, è necessario inserirli tra virgolette doppie. Esempio:
foo "AND" bar |
---|
CORRISPONDENZA A LIVELLO DI FRASE
Una query regolare per corrispondenza approssimativa rileverà un risultato se UNO QUALSIASI dei token è presente in un campo (ma non necessariamente in tutti); inoltre, l’ordine dei token non viene preso in considerazione, in quanto questi non devono necessariamente essere concatenati.
Quando tra tutti i campi ricercabili si vuole trovare una frase esatta indipendente da maiuscole e minuscole, occorre eseguire una query per corrispondenza a livello di frase. Questo consente di trovare quei risultati in cui più token sono presenti nello stesso campo e in un dato ordine, uguale a quanto specificato tra virgolette.
Formato della sintassi per le query con corrispondenza a livello di frase o espressione:
"<phrase_match_query>" |
---|
oppure
'<phrase_match_query>' |
---|
Se la sintassi della query non rispetta le regole della sintassi per query con corrispondenza a livello di frase o espressione, la ricerca avviene mediante una query regolare per corrispondenza approssimativa attraverso tutti i campi ricercabili.
Ad esempio, la query
“Gruppo di studio” |
---|
troverà gli accordi contenenti la frase “gruppo di studio” in uno dei campi ricercabili. Nota che la frase “gruppo - studio” non sarà tra le corrispondenze di questa query poiché non è una frase esatta senza distinzione tra maiuscole e minuscole rispetto a “Gruppo di studio”.
Una corrispondenza a livello di frase o espressione può essere visualizzata in qualsiasi posizione all’interno di una query di ricerca. Ad esempio,
titolo: ( matematica AND “materiali del corso” AND “gruppo di studio” ) |
---|
corrisponderà al titolo “Materiali del corso del gruppo di studio matematica 101” poiché questo titolo contiene la parola chiave “matematica” e le frasi “Materiali del corso” e “Gruppo di studio”.
PREFISSO NOME CAMPO
Una query con prefisso nome campo serve per cercare un solo campo specifico tra gli accordi dell’utente.
La query con prefisso nome campo deve contenere un prefisso per il nome di campo seguito da una query di ricerca. Formato della sintassi per query con prefisso nome campo:
<field_name>:<query> |
---|
Il prefisso nome campo può apparire davanti a un token o davanti a una parte tra parentesi di una query. Ad esempio, nella query di ricerca
title: ( Hello AND "Beautiful World" AND "My World" ) |
---|
tutti i token vengono confrontati con il campo del titolo dell’accordo.
Nella query di ricerca riportata di seguito
title: Hello AND "Beautiful World" AND "My World" |
---|
solo la parola “Hello” ha un prefisso per il nome di campo e questa parola corrisponde solo al campo del titolo dell’accordo. Le altre parole e frasi vengono confrontate con tutti i campi ricercabili.
Se <field_name> non è specificato, la frase in questione viene cercata in tutti i campi supportati. Se invece si specifica un nome di campo, la ricerca verrà eseguita solo nei campi <field_name>.
Se la sintassi della query non segue le regole per la sintassi della query con prefisso nome campo, la ricerca dell’accordo utilizza l’intera query come query di ricerca ed esegue una ricerca tra tutti i campi ricercabili.
Ad esempio, la query con prefisso nome campo:
title: ( Hello World ) |
---|
esegue una ricerca che considera solo il campo che contiene il nome dell’accordo.
Di seguito sono elencati i prefissi supportati per le query con prefisso nome campo. I prefissi per il nome di campo sono indipendenti da maiuscole e minuscole.
CONTENUTO DEL CAMPO |
PREFISSO DELLA STRINGA DI RICERCA PER NOME CAMPO |
DESCRIZIONE CONTENUTO CAMPO |
Titolo |
title* |
Titolo dell’accordo. |
Nota |
note |
Nota di accordo privata, inserita dal partecipante e non visibile a nessun altro. |
Messaggio |
message |
Elenco di messaggi visibili al partecipante (comprende messaggi pubblici e privati). |
Nome file originale |
originalFileName |
Nome originale di un file caricato associato all’accordo. |
email** |
Indirizzo e-mail del destinatario (anche in Cc) o mittente. |
|
Nome completo |
fullName*** |
Nome e cognome del destinatario (anche in Cc) o del mittente. |
Titolo professionale |
jobTitle |
Titolo professionale del destinatario (anche in Cc) o del mittente nella sua azienda. |
Ragione sociale |
companyName |
Nome dell’azienda o dell’organizzazione del destinatario (anche in Cc) o del mittente. |
Nome del gruppo di destinatari | recipientGroupName |
Nome del gruppo di accordi ad-hoc a cui i partecipanti possono appartenere. |
Contenuto del campo di testo | textFieldContent |
Contenuto del campo di testo inserito nel modulo dall’utente. |
Nome completo di chi condivide | sharerFullName | Nome completo di chi ha condiviso l’accordo. Nel caso in cui non ci sia condivisione questo è il nome dell’utente. |
Nome gruppo destinatari di chi ha condiviso | sharerRecipientGroupName | Nome gruppo destinatari di chi ha condiviso l’accordo. Nel caso in cui non ci sia condivisione questo è il nome del gruppo dell’utente. |
ID esterno | externalId |
ID assegnato dal mittente all’accordo; può essere in qualunque forma, solitamente “<groupID>:<ID>”. L’ID esterno viene passato alla chiamata API di creazione dell’accordo. |
ID gruppo esterno | externalGroupId |
L’ID gruppo assegnato dal mittente all’accordo può essere in forma diversa e generalmente viene utilizzato come prefisso per l’ID esterno. L’ID gruppo esterno viene passato nella chiamata all’API di creazione dell’accordo. Se imposti il parametro ID gruppo esterno, devi impostare anche l’ID esterno. |
ID transazione | agreementId | ID assegnato da Acrobat Sign all’accordo al momento della creazione. |
Per la compatibilità con versioni precedenti, alcuni prefissi dei nomi campo hanno degli alias con funzionalità equivalenti ai prefissi del nome campo originale. Tali alias sono obsoleti e verranno rimossi:
* Il prefisso nome campo “name” può essere usato al posto di “title”.
** Il prefisso nome campo “participantEmail” può essere utilizzato al posto di “email”.
*** Il prefisso nome campo “participantName” può essere usato al posto di “fullName”.
CARATTERI JOLLY
Per ottenere una corrispondenza del prefisso seguita da un numero illimitato di caratteri in un token può essere utilizzato un carattere jolly ( asterisco * ). L’espansione con caratteri jolly è un’operazione costosa che si verifica in fase di runtime, pertanto è necessario seguire le seguenti regole di sintassi per poter utilizzare questa funzione:
- I caratteri jolly di interlinea non sono consentiti.
- I caratteri jolly al centro di un token non sono consentiti.
- È necessario un prefisso nome campo per un token che dispone di un gestore di espansione jolly.
- Un gestore di caratteri jolly non può essere utilizzato più di una volta in una query.
- Le query che contengono un'espansione con caratteri jolly restituiscono un errore timeout se la durata dell'esecuzione supera i cinque secondi.
Ad esempio, la query
title:myh* |
---|
corrisponde ai token del campo titolo
myhost |
---|
e
L'espansione di caratteri jolly è un'operazione costosa. Se utilizzata nel modo scorretto, consuma numerose risorse di sistema e potrebbe essere necessario aspettare molto tempo per i risultati della ricerca. Per evitare questi problemi, SGQL include restrizioni sull'utilizzo dei caratteri jolly che rimuovono i casi d'uso più costosi e che richiedono più risorse. Più specifici sono i token, più efficiente è la ricerca. La ricerca di una parola o frase specifica è sempre più efficiente rispetto a una ricerca che utilizza un carattere jolly.
ESPRESSIONI BOOLEANE
SGQL supporta gli operatori booleani: AND, OR e NOT, nonché il raggruppamento di tali operatori mediante parentesi. Gli operatori devono essere indicati in maiuscolo.
L'operatore OR è sempre implicito tra i token. Ad esempio,
foo bar |
---|
è uguale a
foo OR bar |
---|
A meno che non si desideri includere l'operatore OR per motivi di chiarezza, non è necessario specificarlo.
L'operatore NOT viene applicato solamente se seguito immediatamente dal token. Per applicare l'operatore NOT a più token, è necessario racchiuderli tra parentesi.
La tabella seguente descrive l'ordine in cui vengono valutate le espressioni booleane.
Ordine |
Comando di ricerca |
---|---|
1 | Espressioni tra parentesi |
2 | Clausole NOT |
3 | Clausole OR |
4 | Clausole AND |
La tabella seguente presenta alcuni esempi di query semanticamente equivalenti, che spiegano la precedenza degli operatori nel caso in cui quelli di raggruppamento (parentesi) non siano forniti.
Query di ricerca | Query di ricerca equivalente riscritta | Commenti |
---|---|---|
foo AND bar baz | foo AND (bar OR baz) | L'operatore OR è implicito e non deve essere utilizzato a meno che non si desideri aggiungerlo per motivi di chiarezza. |
foo NOT bar baz | foo OR (NOT bar) OR baz | L'operatore NOT viene applicato al token seguente o alla parte tra parentesi di una query. |
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” ) | Il prefisso nome campo viene applicato al seguente token o alla parte di query tra parentesi. |
title: Hello AND note: "Beautiful World" "My World" | title:Hello AND ( note:"Beautiful World" OR "My World" ) | La frase “My World” verrà cercata in tutti i campi ricercabili. |