Búsqueda avanzada

En esta sección, se analizan más matices de la función de búsqueda y temas avanzados.

Sinónimos personalizados

Document AI Warehouse proporciona una función llamada "Sinónimos personalizados" que permite a los clientes proporcionar sus propios sinónimos para sus dominios específicos. Un sinónimo, como su nombre lo indica, es una palabra similar que se usa durante la búsqueda. Si el usuario realiza una búsqueda de "televisión", se pueden agregar sin problemas los siguientes sinónimos sin que el usuario lo sepa: "TV", "monitor de video", "pantalla de video". Los términos de búsqueda originales del usuario y los sinónimos se usarán para realizar la búsqueda.

Esta función ayuda a expandir la búsqueda de un usuario y mostrar los resultados esperados. El uso típico incluye términos, acrónimos, jerga y lenguaje vernáculo de la empresa o la industria.

Sinónimo, contexto y SynonymSet

Document AI Warehouse presenta tres términos principales para la personalización de sinónimos:

  • Synonym. Un sinónimo representa un conjunto de palabras en el que todas tienen un significado similar.

  • Context. Un contexto representa un grupo de usuarios (como usuarios de una industria, división u organización) que tienen sinónimos específicos que no usan otros grupos. Por ejemplo, es probable que los departamentos de Finanzas y Atención médica usen un SynonymSet completamente diferente. Los contextos se pueden especificar en el campo queryContext de la API de Search. Por lo tanto, usar diferentes contextos para los mismos términos de búsqueda podría generar resultados de la búsqueda diferentes.

  • SynonymSet: Un SynonymSet es una colección de sinónimos para un contexto específico.

{
  "name": string,
  "context": string,
  "synonyms": [
    {
      object (Synonym)
    }
  ]
}

Ejemplo de caso de uso

SynonymSet con contexto: "finance"

"Moneda","Divisa","dólar","euro"​​,"yen"
"Inflación","IPC","expansión económica","auge económico","precios más altos"
"IRS","Internal Revenue Service","US Treasury"
"Tax return","1040","1120","1099","W-2"

En el ejemplo anterior, cuando el usuario consulta "Moneda" y el queryContext es "finanzas", los otros sinónimos de esa fila (es decir, Divisas, dólar, euro, yen) se agregan de forma implícita a la búsqueda. Del mismo modo, si el usuario consulta cualquier término de esa fila, todos los demás términos se agregan a la consulta final. Con el mismo ejemplo, si el usuario consulta "euro", se agregan Moneda, Divisas, dólar y yen a la consulta final.

SynonymSet con el contexto: "healthcare"

"provider","clinic","hospital","doctor","therapist","specialist"
"Reclamación médica","Reclamación","1500","Diagnóstico","CIE-9","CIE9","CIE-10","CIE10","CPT","HCPCS"
"lesión","traumatismo","daño","herida","dolor","moretón","corte","laceración","lesión","abrasión","contusión"

Busca con la expansión de sinónimos personalizados

Cuando los clientes quieren buscar documentos con expansión de sinónimos personalizados, deben especificar uno o más query_context. Puedes revisar la documentación en la API de SearchDocuments.

Como su nombre lo indica, folder search solo busca en una carpeta específica y sus subcarpetas.

Un ejemplo de solicitud de búsqueda se vería de la siguiente manera:

  {
    document_query {
      query: "songs";,
      folderNameFilter: "projects/PROJECT_NUM/locations/LOCATION/documents/888"
    }
  }

Histogramas

Los histogramas son una función avanzada que agrega recuentos de datos especificados. Por ejemplo, ¿cuántos documentos de cada esquema coinciden con la consulta del usuario? En el caso de una base de datos relacionada con el Gobierno, si el usuario busca "Orange County", un histograma de esquema de datos podría mostrar la cantidad de licencias de conducir, certificados de matrimonio o escrituras que coinciden con los criterios de búsqueda. Los histogramas respetan los permisos de acceso a los datos del usuario que realiza la solicitud, por lo que solo se cuentan los documentos a los que tiene acceso.

Los histogramas pueden ser un recurso potente; sin embargo, recopilar y agregar todos los datos lleva tiempo.

Los histogramas no se ven afectados por los campos de paginación de la solicitud de búsqueda.

Formato general de la consulta de histograma

HistogramQuery se define de la siguiente manera:

{
  "histogramQuery": string,
  "requirePreciseResultSize": boolean,
  "filters": {
    object (HistogramQueryPropertyNameFilter)
  }
}

El campo histogram_query tiene el formato COUNT('<item to count>'). Este es un campo repetido, lo que te permite tener más de una consulta de histograma.

No se implementó el campo require_precise_result_size.

El campo filters se analiza en la sección Filtros.

Histogramas de esquemas de documentos

Puedes crear histogramas de esquemas o tipos de documentos agregando esta consulta de histograma:

  {
    document_query {
      query: "test"
    },
    histogram_queries: [
      {
        histogram_query: "count('DocumentSchemaId')"
      }
    ]
  }

Por ejemplo, el mapa dentro de HistogramQueryResult de esta consulta se vería de la siguiente manera:

  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",
        }
    }
  ]

En este ejemplo, se muestra que tres esquemas de documentos coinciden con la consulta de búsqueda proporcionada y se muestra la cantidad de documentos por esquema de documento.

Histogramas de propiedades

Los histogramas de propiedades muestran los recuentos de las propiedades filtrables especificadas. Los histogramas de propiedades tienen el siguiente formato:

  COUNT('SomeSchema.SomeProp')

  // Also, you can try with:

  COUNT('SomeSchema.ParentProp.SubProp')

A continuación, se muestra un ejemplo de solicitud:

  histogramQueryResults: [
    {
      histogramQuery: "5678.text_prop",
      histogram: {
        some_text: "1",
        More_text: "55",
        Additional_text: "19"
      }
    }
  ]

En este histograma, se muestran todos los histogramas de propiedades que se pueden filtrar según el criterio HistogramQueryPropertyNameFilter. Esto devuelve el recuento del uso de la propiedad (a diferencia del recuento de los valores).

El HistogramQueryPropertyNameFilter se define de la siguiente manera:

  {
    "documentSchemas": [
      string
    ],
    "propertyNames": [
      string
    ],
    "yAxis": enum (HistogramYAxis)
  }

Puedes limitar los resultados a un conjunto de esquemas de documentos completando el campo repetible llamado document_schemas con hasta 10 campos schema_ID. De manera opcional, las propiedades agregadas se pueden reducir con el campo repetible property_names.

El campo y_axis determina cómo contar las propiedades. Si no se establece o se establece en HISTOGRAM_YAXIS_DOCUMENT, la función de histograma solo cuenta el uso de la propiedad única. Si y_axis se establece en HISTOGRAM_YAXIS_PROPERTY, el histograma cuenta todo el uso de la propiedad. Por ejemplo:

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

A continuación, se muestra un ejemplo de consulta simple:

  {
    document_query {
    },
    histogram_queries: [
      {
        histogramQuery: "count('FilterableProperties')";
      }
    ]
  }

A continuación, se muestra una respuesta de ejemplo a la consulta anterior:

  histogramQueryResults: [
    {
      histogramQuery: "FilterableProperties",
      histogram: {
        456.int_prop: "4",
        456.text_prop: "26"
      }
    }
  ]

Para filtrar los resultados de count('FilterableProperties')) por esquemas, consulta la siguiente solicitud:

  {
    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 los resultados de count('FilterableProperties') según propiedades específicas, consulta la siguiente solicitud:

  {
    document_query: {
    },
    histogram_queries: [
      {
        histogram_query: "count('FilterableProperties')",
        filters: {
          property_names: [
            "678.MORTAGE_TYPE",
            "456.language_code"
          ]
        }
      }
    ]
  }

Para ver el recuento de propiedades de count("FilterableProperties"), cambia el eje Y a HISTOGRAM_YAXIS_PROPERTY de la siguiente manera:

  {
    document_query: {
    },
    histogram_queries: [
      {
        histogram_query: "count('FilterableProperties')",
        filters: {
          y_axis: "HISTOGRAM_YAXIS_PROPERTY"
        }
      }
    ]
  }

Próximos pasos