Recherche avancée

Cette section aborde des nuances et des sujets avancés concernant la fonctionnalité de recherche.

Synonymes personnalisés

Document AI Warehouse propose une fonctionnalité appelée "Synonymes personnalisés" qui permet aux clients de fournir leurs propres synonymes pour leurs domaines spécifiques. Comme son nom l'indique, un synonyme est un mot semblable utilisé lors d'une recherche. Si l'utilisateur recherche"télévision", les synonymes suivants peuvent être ajoutés de manière transparente, sans que l'utilisateur ne s'en rende compte : "TV", "écran vidéo". Les termes de recherche d'origine de l'utilisateur et les synonymes seront utilisés pour exécuter la requête de recherche.

Cette fonctionnalité permet d'élargir la recherche d'un utilisateur et de renvoyer les résultats attendus. L'utilisation typique inclut les termes, acronymes, expressions et jargon propres à l'entreprise ou au secteur.

Synonyme, contexte et SynonymSet

Document AI Warehouse introduit trois termes majeurs pour la personnalisation des synonymes :

  • Synonym. Un synonyme représente un ensemble de mots ayant tous un sens similaire.

  • Context. Un contexte représente un groupe d'utilisateurs (par exemple, les utilisateurs d'un secteur, d'une division ou d'une organisation) qui ont des synonymes spécifiques qui ne sont pas utilisés par d'autres groupes. Par exemple, les services financiers et de santé utilisent probablement des SynonymSet complètement différents. Les contextes peuvent être spécifiés dans le champ queryContext de l'API Search. Ainsi, l'utilisation de différents contextes pour les mêmes termes de requête de recherche peut générer des résultats de recherche différents.

  • SynonymSet. Un SynonymSet est une collection de synonymes pour un contexte spécifique.

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

Exemple d'utilisation

SynonymSet avec contexte : "finance"

"Devise","Taux de change","dollar","euro","yen"
"inflation","IPC","expansion économique","boom économique","prix plus élevés"
"IRS","Internal Revenue Service","US Treasury"
"Déclaration d'impôts","1040","1120","1099","W-2"

Dans l'exemple précédent, lorsque l'utilisateur recherche "Devise" et que queryContext est défini sur "finance", les autres synonymes de cette ligne (c'est-à-dire "Change", "dollar", "euro" et "yen") sont ajoutés de manière implicite à la requête de recherche. De même, si l'utilisateur interroge un terme de cette ligne, tous les autres termes sont ajoutés à la requête finale. En reprenant le même exemple, si l'utilisateur recherche "euro", les termes "Devise", "Change", "dollar" et "yen" sont ajoutés à la requête finale.

SynonymSet avec le contexte "healthcare"

"provider","clinic","hospital","doctor","therapist","specialist"
"Demande de remboursement de frais médicaux","Demande","1500","Diagnostic","CIM-9","CIM9","CIM-10","CIM10","CPT","HCPCS"
"injury","trauma","hurt","wound","sore","bruise","cut","laceration","lesion","abrasion","contusion"

Rechercher avec l'expansion des synonymes personnalisés

Lorsque les clients souhaitent rechercher des documents avec une expansion de synonymes personnalisée, ils doivent spécifier un ou plusieurs query_context. Vous pouvez consulter la documentation dans l'API SearchDocuments.

Comme son nom l'indique, folder search effectue une recherche uniquement dans un dossier spécifique et ses sous-dossiers.

Voici un exemple de requête de recherche :

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

Histogrammes

Les histogrammes sont une fonctionnalité avancée qui agrège les nombres sur des données spécifiées. Par exemple, combien de documents de chaque schéma correspondent à la requête de l'utilisateur ? Pour une base de données gouvernementale, si l'utilisateur recherche "Comté d'Orange", un histogramme de schéma de données peut renvoyer le nombre de permis de conduire, de certificats de mariage ou d'actes correspondant aux critères de recherche. Les histogrammes respectent les autorisations d'accès aux données de l'utilisateur qui en fait la demande. Seuls les documents auxquels l'utilisateur a accès sont comptabilisés.

Les histogrammes peuvent être une ressource puissante, mais la collecte et l'agrégation de toutes les données prennent du temps.

Les histogrammes ne sont pas affectés par les champs de pagination de la requête de recherche.

Format général des requêtes d'histogramme

HistogramQuery est défini comme suit :

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

Le champ histogram_query a le format suivant : COUNT('<item to count>'). Ce champ est un champ répété, ce qui vous permet d'avoir plusieurs requêtes d'histogramme.

Le champ require_precise_result_size n'est pas implémenté.

Le champ filters est abordé dans la section Filtres.

Histogrammes de schémas de document

Vous pouvez créer des histogrammes de schémas ou de types de documents en ajoutant la requête d'histogramme suivante :

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

Par exemple, la carte à l'intérieur de HistogramQueryResult de cette requête se présenterait comme suit :

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

Cet exemple montre que trois schémas de document correspondent à la requête de recherche donnée, et indique le nombre de documents par schéma de document.

Histogrammes de propriétés

Les histogrammes de propriétés affichent le nombre de propriétés filtrables spécifiées. Les histogrammes de propriétés sont au format suivant :

  COUNT('SomeSchema.SomeProp')

  // Also, you can try with:

  COUNT('SomeSchema.ParentProp.SubProp')

Voici un exemple de requête :

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

Cet histogramme affiche tous les histogrammes de propriétés filtrables en fonction du critère HistogramQueryPropertyNameFilter. Cela renvoie le nombre d'utilisations de la propriété (et non le nombre de valeurs).

HistogramQueryPropertyNameFilter est défini comme suit :

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

Vous pouvez limiter les résultats à un ensemble de schémas de document en remplissant le champ répétable document_schemas jusqu'à 10 champs schema_ID. Les propriétés agrégées peuvent éventuellement être réduites à l'aide du champ property_names répétable.

Le champ y_axis détermine comment compter les propriétés. Si elle n'est pas définie ou si elle est définie sur HISTOGRAM_YAXIS_DOCUMENT, la fonctionnalité d'histogramme ne comptabilise que l'utilisation unique de la propriété. Si y_axis est défini sur HISTOGRAM_YAXIS_PROPERTY, l'histogramme comptabilise toutes les utilisations de la propriété. Exemple :

Document 1 : Payments_property: [AMEX, VISA]

Document 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

Voici un exemple simple de requête :

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

Voici un exemple de réponse à la requête précédente :

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

Pour filtrer les résultats count('FilterableProperties')) par schémas, consultez la requête suivante :

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

Pour filtrer les résultats count('FilterableProperties') en fonction de propriétés spécifiques, consultez la requête suivante :

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

Pour afficher le nombre de propriétés pour count("FilterableProperties"), définissez l'axe y sur HISTOGRAM_YAXIS_PROPERTY comme suit :

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

Étapes suivantes