In questa sezione vengono illustrate ulteriori sfumature e argomenti avanzati della funzionalità di ricerca.
Sinonimi personalizzati
Document AI Warehouse offre una funzionalità chiamata "Sinonimi personalizzati" che consente ai clienti di fornire i propri sinonimi per i loro domini specifici. Un sinonimo, come suggerisce il nome, è una parola simile utilizzata durante la ricerca. Se l'utente esegue una ricerca su "televisione", i seguenti sinonimi possono essere aggiunti senza problemi all'insaputa dell'utente: "TV", "monitor video", "schermo video". Per eseguire la query di ricerca, verranno utilizzati i termini di ricerca originali dell'utente e i sinonimi.
Questa funzionalità consente di espandere la ricerca di un utente e restituire i risultati previsti. L'utilizzo tipico include termini aziendali o di settore, acronimi, gergo e linguaggio comune.
Sinonimo, contesto e SynonymSet
Document AI Warehouse introduce tre termini principali per la personalizzazione dei sinonimi:
Synonym. Un sinonimo rappresenta un insieme di parole che hanno tutte un significato simile.Context. Un contesto rappresenta un gruppo di utenti (ad esempio utenti di un settore, di una divisione o di un'organizzazione) che hanno sinonimi specifici non utilizzati da altri gruppi. Ad esempio, i reparti Finanza e Sanità probabilmente utilizzano unSynonymSetcompletamente diverso. I contesti possono essere specificati nel campoqueryContextdell'API Search. Pertanto, l'utilizzo di contesti diversi per gli stessi termini di una query di ricerca potrebbe produrre risultati di ricerca diversi.SynonymSet. Un SynonymSet è una raccolta di sinonimi per un contesto specifico.
{
"name": string,
"context": string,
"synonyms": [
{
object (Synonym)
}
]
}
Caso d'uso di esempio
SynonymSet con contesto: "finance"
| "Valuta","Cambio","dollaro","euro","yen" |
| "Inflation","CPI","economic expansion","economic boom","higher prices" |
| "IRS","Internal Revenue Service","US Treasury" |
| "Tax return","1040","1120","1099","W-2" |
Nell'esempio precedente, quando l'utente esegue una query per "Valuta" e queryContext è "finanza", gli altri sinonimi in quella riga (ovvero Cambio, dollaro, euro, yen) vengono aggiunti implicitamente alla query di ricerca. Analogamente, se l'utente esegue una query su un termine di quella riga, tutti gli altri termini vengono aggiunti alla query finale. Utilizzando lo stesso esempio, se l'utente esegue una query per "euro", alla query finale vengono aggiunti i termini Valuta, Cambio, Dollaro e Yen.
SynonymSet con contesto: "healthcare"
| "provider","clinic","hospital","doctor","therapist","specialist" |
| "Medical claim","Claim","1500","Diagnosis","ICD-9","ICD9","ICD-10","ICD10","CPT","HCPCS" |
| "injury","trauma","hurt","wound","sore","bruise","cut","laceration","lesion","abrasion","contusion" |
Ricerca con espansione dei sinonimi personalizzati
Quando i clienti vogliono cercare documenti con l'espansione dei sinonimi personalizzati, devono specificare uno o più query_context. Puoi consultare la documentazione nell'API SearchDocuments.
Ricerca di cartelle
Come suggerisce il nome, folder search esegue la ricerca solo in una determinata cartella e nelle relative sottocartelle.
Un esempio di richiesta di ricerca è il seguente:
{
document_query {
query: "songs";,
folderNameFilter: "projects/PROJECT_NUM/locations/LOCATION/documents/888"
}
}
Istogrammi
Gli istogrammi sono una funzionalità avanzata che aggrega i conteggi su dati specifici. Ad esempio, quanti documenti di ogni schema corrispondono alla query dell'utente? Per un database governativo, se l'utente cerca"Orange County", un istogramma dello schema di dati potrebbe restituire il numero di patenti di guida, certificati di matrimonio o atti che corrispondono ai criteri di ricerca. Gli istogrammi rispettano le autorizzazioni di accesso ai dati dell'utente richiedente, pertanto vengono conteggiati solo i documenti a cui l'utente richiedente ha accesso.
Gli istogrammi possono essere una risorsa efficace, ma la raccolta e l'aggregazione di tutti i dati richiedono tempo.
Gli istogrammi non sono interessati dai campi di impaginazione della richiesta di ricerca.
Formato generale delle query di istogramma
HistogramQuery è definito come:
{
"histogramQuery": string,
"requirePreciseResultSize": boolean,
"filters": {
object (HistogramQueryPropertyNameFilter)
}
}
Il campo histogram_query ha il formato: COUNT('<item to count>'). Questo campo è un campo ripetuto, che ti consente di avere più di una query di istogramma.
Il campo require_precise_result_size non è implementato.
Il campo filters è descritto nella sezione Filtri.
Istogrammi dello schema del documento
Puoi creare istogrammi dello schema o del tipo di documento aggiungendo questa query di istogramma:
{
document_query {
query: "test"
},
histogram_queries: [
{
histogram_query: "count('DocumentSchemaId')"
}
]
}
Ad esempio, la mappa all'interno di HistogramQueryResult di questa query sarebbe simile alla seguente:
histogramQueryResults: [
{
histogramQuery: "DocumentSchemaId",
histogram:
{
"projects/1234/locations/us-west/documentSchemas/5543": "22",
"projects/1234/locations/us-west/documentSchemas/5544": "2",
"projects/1234/locations/us-west/documentSchemas/5545": "4",
"projects/1234/locations/us-west/documentSchemas/5546": "122",
"projects/1234/locations/us-west/documentSchemas/5547": "256",
"projects/1234/locations/us-west/documentSchemas/5548": "1",
"projects/1234/locations/us-west/documentSchemas/5549": "5",
"projects/1234/locations/us-west/documentSchemas/5550": "15",
}
}
]
Questo esempio mostra che tre schemi di documenti corrispondono alla query di ricerca specificata e mostra il numero di documenti per schema di documento.
Istogrammi delle proprietà
Gli istogrammi delle proprietà mostrano i conteggi delle proprietà filtrabili specificate. Gli istogrammi delle proprietà hanno il formato:
COUNT('SomeSchema.SomeProp')
// Also, you can try with:
COUNT('SomeSchema.ParentProp.SubProp')
Di seguito è riportato un esempio di richiesta:
histogramQueryResults: [
{
histogramQuery: "5678.text_prop",
histogram: {
some_text: "1",
More_text: "55",
Additional_text: "19"
}
}
]
Questo istogramma mostra tutti gli istogrammi delle proprietà filtrabili in base al criterio HistogramQueryPropertyNameFilter. Viene restituito il conteggio dell'utilizzo della proprietà (anziché il conteggio dei valori).
HistogramQueryPropertyNameFilter è definito come:
{
"documentSchemas": [
string
],
"propertyNames": [
string
],
"yAxis": enum (HistogramYAxis)
}
Puoi limitare i risultati a un insieme di schemi di documenti compilando il campo ripetibile denominato document_schemas fino a 10 campi schema_ID. Le proprietà aggregate possono essere facoltativamente ridotte utilizzando il campo ripetibile property_names.
Il campo y_axis determina come conteggiare le proprietà. Se non viene impostato o se viene impostato su HISTOGRAM_YAXIS_DOCUMENT, la funzionalità dell'istogramma conteggia solo l'utilizzo univoco della proprietà. Se y_axis è impostato su HISTOGRAM_YAXIS_PROPERTY, l'istogramma conteggia tutto l'utilizzo della proprietà. Ad esempio:
Documento 1: Payments_property: [AMEX, VISA]
Documento 2: Payments_property: [MC]
`HISTOGRAM_YAXIS_DOCUMENT` would return:
Payments_property: 2
_Explanation_: The `Payments_property` is found in two documents
`HISTOGRAM_YAXIS_PROPERTY` would return:
Payments_property: 3
_Explanation_: The `Payments_property` has three values in the documents found
Di seguito è riportato un semplice esempio di query:
{
document_query {
},
histogram_queries: [
{
histogramQuery: "count('FilterableProperties')";
}
]
}
Di seguito è riportato un esempio di risposta alla query precedente:
histogramQueryResults: [
{
histogramQuery: "FilterableProperties",
histogram: {
456.int_prop: "4",
456.text_prop: "26"
}
}
]
Per filtrare i risultati di count('FilterableProperties')) in base agli schemi, consulta la seguente richiesta:
{
document_query: {
},
histogram_queries: [
{
histogram_query: "count('FilterableProperties')",
filters: {
document_schemas: [
"projects/1234/locations/us-west/documentSchemas/678",
"projects/1234/locations/us-west/documentSchemas/456"
]
}
}
]
}
Per filtrare i risultati di count('FilterableProperties') per proprietà specifiche, consulta la seguente richiesta:
{
document_query: {
},
histogram_queries: [
{
histogram_query: "count('FilterableProperties')",
filters: {
property_names: [
"678.MORTAGE_TYPE",
"456.language_code"
]
}
}
]
}
Per visualizzare il conteggio delle proprietà per count("FilterableProperties"), modifica y_axis in HISTOGRAM_YAXIS_PROPERTY come segue:
{
document_query: {
},
histogram_queries: [
{
histogram_query: "count('FilterableProperties')",
filters: {
y_axis: "HISTOGRAM_YAXIS_PROPERTY"
}
}
]
}
Passaggi successivi
- Vai al Policy Engine
- Consulta il riferimento REST