Erweiterte Suche

In diesem Abschnitt werden weitere Details und erweiterte Themen zur Suchfunktion behandelt.

Benutzerdefinierte Synonyme

Document AI Warehouse bietet eine Funktion namens „Benutzerdefinierte Synonyme“, mit der Kunden ihre eigenen Synonyme für ihre spezifischen Domains angeben können. Ein Synonym ist, wie der Name schon sagt, ein ähnliches Wort, das bei der Suche verwendet wird. Wenn der Nutzer nach „Fernseher“ sucht, können die folgenden Synonyme nahtlos hinzugefügt werden, ohne dass der Nutzer es merkt: „TV“, „Videomonitor“, „Videobildschirm“. Die ursprünglichen Suchbegriffe des Nutzers und die Synonyme werden für die Suchanfrage verwendet.

Mit dieser Funktion können Sie die Suche eines Nutzers erweitern und die erwarteten Ergebnisse zurückgeben. Typische Anwendungsfälle sind Unternehmens- oder Branchenbegriffe, Akronyme, Fachjargon und Umgangssprache.

Synonym, Context und SynonymSet

Document AI Warehouse führt drei wichtige Begriffe für die Anpassung von Synonymen ein:

  • Synonym. Ein Synonym ist eine Gruppe von Wörtern, die alle eine ähnliche Bedeutung haben.

  • Context. Ein Kontext stellt eine Gruppe von Nutzern dar (z. B. Nutzer aus einer Branche, Abteilung oder Organisation), die bestimmte Synonyme verwenden, die von anderen Gruppen nicht verwendet werden. Beispielsweise verwenden die Finanz- und Gesundheitsabteilungen wahrscheinlich eine völlig andere SynonymSet. Die Kontexte können im Feld queryContext der Search API angegeben werden. Wenn Sie also unterschiedliche Kontexte für dieselben Suchanfragebegriffe verwenden, können Sie unterschiedliche Suchergebnisse erhalten.

  • SynonymSet. Ein SynonymSet ist eine Sammlung von Synonymen für einen bestimmten Kontext.

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

Anwendungsbeispiel

SynonymSet mit Kontext: „finance“

"Währung","Devisen","Dollar","Euro","Yen"
"Inflation","VPI","Wirtschaftswachstum","Wirtschaftsboom","höhere Preise"
"IRS","Internal Revenue Service","US Treasury"
"Tax return","1040","1120","1099","W-2"

Wenn der Nutzer im vorherigen Beispiel nach „Währung“ sucht und der queryContext „Finanzen“ ist, werden die anderen Synonyme in dieser Zeile (also „Devisen“, „Dollar“, „Euro“, „Yen“) implizit der Suchanfrage hinzugefügt. Wenn der Nutzer einen Begriff in dieser Zeile abfragt, werden alle anderen Begriffe der endgültigen Abfrage hinzugefügt. Wenn der Nutzer im selben Beispiel nach „Euro“ sucht, werden der endgültigen Abfrage „Währung“, „Devisen“, „Dollar“ und „Yen“ hinzugefügt.

SynonymSet mit Kontext: „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"

Suche mit benutzerdefinierter Synonymerweiterung

Wenn Kunden Dokumente mit benutzerdefinierter Synonym-Erweiterung durchsuchen möchten, müssen sie eine oder mehrere query_context angeben. Weitere Informationen finden Sie in der Dokumentation zur SearchDocuments API.

Wie der Name schon sagt, wird mit folder search nur in einem bestimmten Ordner und seinen Unterordnern gesucht.

Eine Suchanfrage könnte beispielsweise so aussehen:

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

Histogramme

Histogramme sind eine erweiterte Funktion, mit der die Anzahl der angegebenen Daten aggregiert wird. Beispiel: Wie viele Dokumente der einzelnen Schemas entsprechen der Anfrage des Nutzers? Wenn der Nutzer in einer behördlichen Datenbank nach „Orange County“ sucht, kann ein Datenschema-Histogramm die Anzahl der Führerscheine, Heiratsurkunden oder Urkunden zurückgeben, die den Suchkriterien entsprechen. Bei Histogrammen werden die Datenzugriffsberechtigungen des anfragenden Nutzers berücksichtigt. Es werden also nur Dokumente gezählt, auf die der anfragende Nutzer Zugriff hat.

Histogramme können eine leistungsstarke Ressource sein. Das Erfassen und Aggregieren aller Daten nimmt jedoch Zeit in Anspruch.

Histogramme sind von den Paginierungsfeldern der Suchanfrage nicht betroffen.

Allgemeines Format für Histogrammabfragen

Die HistogramQuery ist so definiert:

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

Das Feld histogram_query hat das Format COUNT('<item to count>'). Dieses Feld ist ein wiederkehrendes Feld, das mehrere Histogrammabfragen ermöglicht.

Das Feld require_precise_result_size ist nicht implementiert.

Das Feld filters wird im Abschnitt „Filter“ erläutert.

Histogramme für Dokumentschemas

Sie können Histogramme für Dokumentenschemas oder Dokumenttypen erstellen, indem Sie diese Histogrammabfrage hinzufügen:

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

Die Map in HistogramQueryResult dieser Abfrage würde beispielsweise so aussehen:

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

In diesem Beispiel stimmen drei Dokumentenschemas mit der angegebenen Suchanfrage überein. Außerdem wird die Anzahl der Dokumente pro Dokumentenschema angezeigt.

Attributhistogramme

In Attributhistogrammen wird die Anzahl der angegebenen filterbaren Attribute angezeigt. Attributhistogramme haben das folgende Format:

  COUNT('SomeSchema.SomeProp')

  // Also, you can try with:

  COUNT('SomeSchema.ParentProp.SubProp')

Hier ein Beispiel für eine Anfrage:

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

In diesem Histogramm werden alle filterbaren Attributhistogramme basierend auf dem Kriterium „HistogramQueryPropertyNameFilter“ angezeigt. Dadurch wird die Anzahl der Attributnutzungen zurückgegeben (im Gegensatz zur Anzahl der Werte).

Der HistogramQueryPropertyNameFilter ist so definiert:

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

Sie können die Ergebnisse auf eine Reihe von Dokumentenschemas beschränken, indem Sie das wiederholbare Feld document_schemas mit bis zu 10 schema_ID-Feldern ausfüllen. Die aggregierten Properties können optional mithilfe des wiederholbaren Felds property_names reduziert werden.

Im Feld y_axis wird festgelegt, wie die Properties gezählt werden. Wenn sie nicht festgelegt oder auf HISTOGRAM_YAXIS_DOCUMENT gesetzt ist, zählt die Histogrammfunktion nur die eindeutige Property-Nutzung. Wenn y_axis auf HISTOGRAM_YAXIS_PROPERTY gesetzt ist, werden im Histogramm alle Attributnutzungen gezählt. Beispiel:

Dokument 1: Payments_property: [AMEX, VISA]

Dokument 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

Hier ist ein einfaches Beispiel für eine Abfrage:

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

Hier ist eine Beispielantwort auf die vorherige Abfrage:

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

Wenn Sie die count('FilterableProperties'))-Ergebnisse nach Schemas filtern möchten, sehen Sie sich die folgende Anfrage an:

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

Wenn Sie die count('FilterableProperties')-Ergebnisse nach bestimmten Attributen filtern möchten, sehen Sie sich die folgende Anfrage an:

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

Wenn Sie die Anzahl der Properties für count("FilterableProperties") sehen möchten, ändern Sie die y_axis so in HISTOGRAM_YAXIS_PROPERTY:

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

Nächste Schritte