Erweiterte Suche

In diesem Abschnitt werden weitere Nuancen und erweiterte Themen der Suchfunktion behandelt.

Benutzerdefinierte Synonyme

Document AI Warehouse bietet die Funktion „Benutzerdefinierte Synonyme“, mit der Kunden eigene 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 und ohne Wissen des Nutzers hinzugefügt werden: „TV“, „Videomonitor“, „Videobildschirm“. Die ursprünglichen Suchbegriffe des Nutzers und die Synonyme werden für die Suchanfrage verwendet.

Mit dieser Funktion wird die Suche eines Nutzers erweitert und die erwarteten Ergebnisse werden zurückgegeben. Dazu gehören in der Regel Unternehmens- oder Branchenbegriffe, Akronyme, Fachsprache und Umgangssprache.

Synonym, Kontext und SynonymSet

In Document AI Warehouse werden drei wichtige Begriffe für die Anpassung von Synonymen eingeführt:

  • Synonym: Ein Synonym stellt eine Gruppe von Wörtern dar, 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 haben, die von anderen Gruppen nicht verwendet werden. So verwenden die Finanz- und Gesundheitsabteilung wahrscheinlich ein völlig anderes SynonymSet. Die Kontexte können im Feld queryContext der Search API angegeben werden. Wenn Sie also für dieselben Suchanfragebegriffe unterschiedliche Kontexte 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: „Finanzen“

„Währung“, „Devisen“, „Dollar“, „Euro“, „Yen“
„Inflation“, „Verbraucherpreisindex“, „Wirtschaftswachstum“, „Wirtschaftsboom“, „höhere Preise“
„IRS“, „Internal Revenue Service“, „US Treasury“
„Steuererklärung“, „1040“, „1120“, „1099“, „W-2“

Wenn der Nutzer im vorherigen Beispiel nach „Währung“ sucht und queryContext „Finanzen“ ist, werden die anderen Synonyme in dieser Zeile (also „Devisen“, „Dollar“, „Euro“, „Yen“) implizit zur 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 Anfrage „Währung“, „Wechselkurs“, „Dollar“ und „Yen“ hinzugefügt.

SynonymSet mit Kontext: „Gesundheitswesen“

„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 mindestens ein 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 Beispielanfrage für die Suche würde so aussehen:

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

Histogramme

Histogramme sind eine erweiterte Funktion, mit der Zählungen für angegebene Daten aggregiert werden. Wie viele Dokumente der einzelnen Schemas entsprechen beispielsweise der Anfrage des Nutzers? Wenn ein Nutzer in einer regierungsbezogenen Datenbank nach „Orange County“ sucht, kann ein Histogramm des Datenschemas die Anzahl der Führerscheine, Heiratsurkunden oder Eigentumsurkunden 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 wertvolle Ressource sein. Das Erheben und Aggregieren aller Daten dauert jedoch seine Zeit.

Histogramme werden nicht durch die Paginierungsfelder der Suchanfrage beeinflusst.

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, sodass Sie mehr als eine Histogrammabfrage haben können.

Das Feld require_precise_result_size ist nicht implementiert.

Das Feld filters wird im Abschnitt „Filter“ beschrieben.

Histogramme für Dokumentschema

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

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

Die Karte 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 sehen Sie, dass drei Dokumentschemas der angegebenen Suchanfrage entsprechen, sowie die Anzahl der Dokumente pro Dokumentschema.

Histogramme für Attribute

In Property-Histogrammen wird die Anzahl der angegebenen filterbaren Properties angezeigt. Property-Histogramme 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 Property-Histogramme basierend auf dem Kriterium HistogramQueryPropertyNameFilter dargestellt. Dadurch wird die Anzahl der Attributverwendungen zurückgegeben (im Gegensatz zur Anzahl der Werte).

HistogramQueryPropertyNameFilter ist so definiert:

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

Sie können die Ergebnisse auf eine Reihe von Dokumentschemas beschränken, indem Sie das wiederholbare Feld document_schemas mit bis zu 10 schema_ID-Feldern ausfüllen. Die aggregierten Eigenschaften 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, wird bei der Histogrammfunktion nur die eindeutige Verwendung der Property gezählt. Wenn y_axis auf HISTOGRAM_YAXIS_PROPERTY gesetzt ist, werden im Histogramm alle Verwendungen der Property 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 ein einfaches Beispiel für eine Abfrage:

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

Hier ist eine Beispielantwort auf die vorherige Anfrage:

  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:HISTOGRAM_YAXIS_PROPERTY

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

Nächste Schritte