Nesta seção, discutimos mais nuances e tópicos avançados do recurso de pesquisa.
Sinônimos personalizados
O Document AI Warehouse oferece um recurso chamado "Sinônimos personalizados", que permite que os clientes forneçam os próprios sinônimos para domínios específicos. Um sinônimo, como o nome indica, é uma palavra semelhante usada durante a pesquisa. Se o usuário pesquisar "televisão", os seguintes sinônimos poderão ser adicionados sem que ele perceba: "TV", "monitor de vídeo", "tela de vídeo". Os termos de pesquisa originais do usuário e os sinônimos serão usados para realizar a consulta de pesquisa.
Esse recurso ajuda a expandir a pesquisa de um usuário e retornar os resultados esperados. O uso típico inclui termos, acrônimos, jargões e linguagem coloquial da empresa ou do setor.
Synonym, Context e SynonymSet
O Document AI Warehouse apresenta três termos principais para a personalização de sinônimos:
Synonym. Um sinônimo representa um conjunto de palavras com significado semelhante.Context. Um contexto representa um grupo de usuários (como usuários de um setor, divisão ou organização) que têm sinônimos específicos que não são usados por outros grupos. Por exemplo, os departamentos de finanças e saúde provavelmente usam umSynonymSetcompletamente diferente. Os contextos podem ser especificados no campoqueryContextda API Search. Assim, o uso de contextos diferentes para os mesmos termos de consulta de pesquisa pode gerar resultados diferentes.SynonymSet. Um SynonymSet é uma coleção de sinônimos para um contexto específico.
{
"name": string,
"context": string,
"synonyms": [
{
object (Synonym)
}
]
}
Exemplo de caso de uso:
SynonymSet com contexto: "finanças"
| "Moeda","Câmbio","dólar","euro","iene" |
| "Inflation","CPI","economic expansion","economic boom","higher prices" |
| "IRS","Internal Revenue Service","US Treasury" |
| "Tax return","1040","1120","1099","W-2" |
No exemplo anterior, quando o usuário consulta "Moeda" e o queryContext é "finanças", os outros sinônimos nessa linha (ou seja, câmbio, dólar, euro, iene) são adicionados implicitamente à consulta de pesquisa. Da mesma forma, se o usuário consultar qualquer termo nessa linha, todos os outros termos serão adicionados à consulta final. Usando o mesmo exemplo, se o usuário consultar "euro", os termos "moeda", "câmbio", "dólar" e "iene" serão adicionados à consulta final.
SynonymSet com contexto: "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" |
Pesquisar com expansão de sinônimos personalizados
Quando os clientes querem pesquisar documentos com expansão de sinônimos personalizados, eles precisam especificar um ou mais query_context. Consulte a documentação na API SearchDocuments.
Pesquisa de pastas
Como o nome sugere, folder search pesquisa apenas em uma pasta específica e nas subpastas dela.
Veja um exemplo de solicitação de pesquisa:
{
document_query {
query: "songs";,
folderNameFilter: "projects/PROJECT_NUM/locations/LOCATION/documents/888"
}
}
Histogramas
Os histogramas são um recurso avançado que agrega contagens em dados especificados. Por exemplo, quantos documentos de cada esquema correspondem à consulta do usuário? Em um banco de dados relacionado ao governo, se o usuário pesquisar "Orange County", um histograma de esquema de dados poderá retornar o número de carteiras de motorista, certidões de casamento ou escrituras que correspondem aos critérios de pesquisa. Os histogramas respeitam as permissões de acesso aos dados do usuário solicitante. Portanto, apenas os documentos que o usuário solicitante pode acessar são contados.
Os histogramas podem ser um recurso poderoso, mas coletar e agregar todos os dados leva tempo.
Os histogramas não são afetados pelos campos de paginação da solicitação de pesquisa.
Formato geral de consulta de histograma
O HistogramQuery é definido como:
{
"histogramQuery": string,
"requirePreciseResultSize": boolean,
"filters": {
object (HistogramQueryPropertyNameFilter)
}
}
O campo histogram_query tem o formato: COUNT('<item to count>'). Esse é um campo repetido, o que permite ter mais de uma consulta de histograma.
O campo require_precise_result_size não foi implementado.
O campo filters é discutido na seção Filtros.
Histogramas de esquema de documentos
É possível criar histogramas de esquema ou tipo de documento adicionando esta consulta de histograma:
{
document_query {
query: "test"
},
histogram_queries: [
{
histogram_query: "count('DocumentSchemaId')"
}
]
}
Por exemplo, o mapa dentro de HistogramQueryResult dessa consulta seria assim:
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",
}
}
]
Este exemplo mostra que três esquemas de documentos correspondem à consulta de pesquisa fornecida e mostra o número de documentos por esquema de documento.
Histogramas de propriedades
Os histogramas de propriedade mostram as contagens de propriedades filtráveis especificadas. Os histogramas de propriedade têm o formato:
COUNT('SomeSchema.SomeProp')
// Also, you can try with:
COUNT('SomeSchema.ParentProp.SubProp')
Veja um exemplo de solicitação:
histogramQueryResults: [
{
histogramQuery: "5678.text_prop",
histogram: {
some_text: "1",
More_text: "55",
Additional_text: "19"
}
}
]
Esse histograma mostra todos os histogramas de propriedades filtráveis com base no critério HistogramQueryPropertyNameFilter. Isso retorna a contagem do uso da propriedade (em oposição à contagem dos valores).
O HistogramQueryPropertyNameFilter é definido como:
{
"documentSchemas": [
string
],
"propertyNames": [
string
],
"yAxis": enum (HistogramYAxis)
}
É possível limitar os resultados a um conjunto de esquemas de documentos preenchendo o campo repetível chamado document_schemas com até 10 campos schema_ID. As propriedades agregadas podem ser reduzidas usando o campo repetível property_names.
O campo y_axis determina como contar as propriedades. Se não estiver definido ou estiver definido como HISTOGRAM_YAXIS_DOCUMENT, o recurso de histograma contará apenas o uso exclusivo da propriedade. Se y_axis for definido como HISTOGRAM_YAXIS_PROPERTY, o histograma vai contar todo o uso da propriedade. Exemplo:
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
Veja um exemplo de consulta simples:
{
document_query {
},
histogram_queries: [
{
histogramQuery: "count('FilterableProperties')";
}
]
}
Veja um exemplo de resposta à consulta anterior:
histogramQueryResults: [
{
histogramQuery: "FilterableProperties",
histogram: {
456.int_prop: "4",
456.text_prop: "26"
}
}
]
Para filtrar os resultados de count('FilterableProperties')) por esquemas, consulte a seguinte solicitação:
{
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"
]
}
}
]
}
Para filtrar os resultados de count('FilterableProperties') para propriedades específicas, consulte a seguinte solicitação:
{
document_query: {
},
histogram_queries: [
{
histogram_query: "count('FilterableProperties')",
filters: {
property_names: [
"678.MORTAGE_TYPE",
"456.language_code"
]
}
}
]
}
Para ver a contagem de propriedades de count("FilterableProperties"), mude o y_axis para HISTOGRAM_YAXIS_PROPERTY da seguinte forma:
{
document_query: {
},
histogram_queries: [
{
histogram_query: "count('FilterableProperties')",
filters: {
y_axis: "HISTOGRAM_YAXIS_PROPERTY"
}
}
]
}
Próximas etapas
- Prossiga para o Policy Engine.
- Acesse a referência da REST.