Struktur für eine optimale Abfrageinterpretation strukturieren

Die Cloud Search-Funktion zur Abfrageinterpretation interpretiert automatisch die Operatoren und Filter in der Nutzerabfrage und wandelt diese Elemente in eine strukturierte, Operator-basierte Abfrage um. Bei der Interpretation von Abfragen werden im Schema definierte Operatoren zusammen mit den indexierten Dokumenten verwendet, um abzuleiten, was die Abfrage des Nutzers bedeutet. Mit dieser Funktion können Nutzer mit wenigen Suchbegriffen suchen und erhalten dennoch präzise Ergebnisse.

Die tatsächlichen Ergebnisse, die dem Nutzer angezeigt werden, hängen von der Zuverlässigkeit der Abfrageinterpretation ab. Die Zuverlässigkeit basiert auf mehreren Faktoren, einschließlich der Position der Abfragestrings in indexierten Dokumenten. Ein String wie der Name des Schauspielers "Tom Hanks", der konsistent in einem Schemafeld namens actors erscheint, führt zu einer höheren Konfidenz. Derselbe String ("Tom Hanks") statt eines Schemafelds, der in einem Absatz erscheint, kann zu einer geringeren Konfidenz führen. Bei einer hohen Konfidenz werden dem Nutzer nur Ergebnisse aus der Abfrageinterpretation angezeigt. Im Falle einer schwächeren Zuverlässigkeit werden die Ergebnisse der Abfrageinterpretation mit den Ergebnissen einer normalen Stichwortsuche zusammengeführt.

Beispiel für die Interpretation einer Abfrage

Angenommen, Sie haben eine Datenquelle, z. B. eine Datenbank, die Informationen zu Filmen enthält. Abbildung 1 zeigt ein Beispiel für eine Suchanfrage und die entsprechende Interpretation.

Übersicht über die Interpretation von Abfragen
Abbildung 1. Interpretation von Abfragen

In dieser Beispielabfrage wird bei der Interpretation der Abfrage Folgendes ausgeführt:

  • Parst das Schema und stellt fest, dass die Objekte der obersten Ebene in der Datenquelle als objecttype:movies klassifiziert sind. Bei der Abfrageauswertung wird erkannt, dass „Filme“ in der Abfrage ein Objekttyp ist.

  • Scannt Dokumente in der Datenquelle in Verbindung mit dem Schema, um zu ermitteln, wo der String „Aktion“ auftritt. Wenn der String hauptsächlich in einem bestimmten Datenquellenfeld "Genre" vorkommt, kann bei der Abfrageauswertung sichergestellt werden, dass "action" ein Attributwert für die im Schema definierte Eigenschaft "genre" ist. Wenn der String hauptsächlich im Kontext von Inhaltsabsätzen vorkommt, sinkt das Konfidenzniveau der Abfrageinterpretation.

Die resultierende Abfrageinterpretation lautet:

  actor:“tom hanks” genre:action objecttype:movies

Die Interpretation von Abfragen wird für alle Cloud Search-Kunden automatisch und ohne zusätzlichen Aufwand aktiviert. Für eine optimale Interpretation von Abfragen sollten Sie Ihr Schema jedoch entsprechend der Anleitung in diesem Dokument strukturieren.

Strukturieren Sie Ihr Schema, um die Interpretation von Abfragen zu unterstützen

Strukturieren Sie Ihr Schema so, dass Sie von der Abfrageinterpretation profitieren.

Interpretationen von Anzeigenamen aktivieren

Für die Abfrageinterpretation von Cloud Search werden objectDefinitions und propertyDefinitions in einem Schema verwendet, um die Abfrage eines Nutzers zu interpretieren und die Ergebnisse zu optimieren. Um die Vorteile dieser Schemaelemente optimal zu nutzen, sollten Sie intuitive Anzeigenamen mit displayLabel für Attributnamen, objectDisplayLabel für Objektnamen und operatorName für Operatoren erstellen.

Das folgende Schema zeigt intuitive Anzeigenamen für ein Filmobjekt:

{
  "objectDefinitions": [
    {
      "name": "movie",
        "options": {
          "displayOptions": {
          "objectDisplayLabel": "Films"
        }
        ...
      },
      "propertyDefinitions": [
        {
          "name": "genre",
          "isReturnable": true,
          "isRepeatable": true,
          "isFacetable": true,
          "textPropertyOptions": {
          "retrievalImportance": { "importance": "HIGHEST" },
          "operatorOptions": {
            "operatorName": "genre"
          }
        },
        "displayOptions": {
          "displayLabel": "Category"
        }
      },
      ...
      ]
    }
  ]
}

Im vorherigen Beispiel:

  • Die Filmobjektdefinition hat ein „Film“-objectDisplayLabel.

  • Die genre-Property-Definition hat ein „genre“-operatorName und eine „Category“-displayLabel.

Mit diesen Anzeigenamen kann Cloud Search die folgenden Abfragen interpretieren:

  • „Actionfilme“, „Filme mit Genre-Action-Filmen“ oder „Filme & Genre-Action“ werden als genre:action object:movies interpretiert.
  • „Filme mit Genre-Action oder Thriller“ wird als objecttype:movies genre:(action OR thriller) interpretiert.
  • „Actionfilm“ oder „Actionfilme“ wird als genre:action objecttype:movies interpretiert.
  • „Filme der Kategorie Komödien“ wird als genre:comedy objecttype:movies interpretiert.

Interpretation von Datum, Zahlen und Sortierung aktivieren

Sie sollten die in IntegerOperatorOptions angegebenen lessThanOperatorName und greaterThanOperatorName für alle Datums- und numerischen Attribute definieren. Diese Einstellungen ermöglichen die automatische Interpretation von Datum und Zahlen. Wenn Sie außerdem die Interpretation des Sortierens aktivieren möchten, legen Sie für Datums- und numerische Attribute die Option isSortable fest. Das folgende Schema zeigt, wie diese Optionen aktiviert werden.

{
  "objectDefinitions": [
    {
      "options": {
        "displayOptions": {
          "objectDisplayLabel": "Films"
        }
      },
      "propertyDefinitions": [
        {
          "name": "runtime",
          "isReturnable": true,
          "isSortable": true,
          "integerPropertyOptions": {
            "orderedRanking": "DESCENDING",
            "minimumValue": {
              "value": 10
            },
            "maximumValue": {
              "value": 500
            },
            "operatorOptions": {
              "operatorName": "runtime",
              "lessThanOperatorName": "runtimelessthan",
              "greaterThanOperatorName": "runtimegreaterthan"
            }
          },
          "displayOptions": {
            "displayLabel": "Length"
          }
        },
        {
          "name": "releasedate",
          "isReturnable": true,
          "isSortable": true,
          "datePropertyOptions": {
            "operatorOptions": {
              "operatorName": "releasedate",
              "lessThanOperatorName": "releasedbefore",
              "greaterThanOperatorName": "releasedafter"
            }
          }
        }
      ]
    }
  ]
}

Im vorherigen Beispiel:

  • Die numerische Eigenschaft runtime bezieht sich auf die Länge eines Films. Für dieses Attribut sind runtimelessthan und runtimegreaterthan festgelegt.
  • Die Datumseigenschaft releaseDate gibt an, wann ein Film ins Kino kommt. Für diese Property sind releasedbefore und releasedafter festgelegt.

Mit diesen Einstellungen kann Cloud Search die folgenden Abfragen interpretieren:

  • Wenn das Jahr 2019 ist, werden „in diesem Jahr veröffentlichte Filme“ als objecttype: movies releasedafter:2019-1-1 releasedbefore:2019-12-31 interpretiert.
  • Wenn die Woche die dritte Märzwoche ist, werden „Filme, die letzte Woche veröffentlicht wurden“ als objecttype: movies releasedafter:2019-3-10 releasedbefore:2019-3-16 interpretiert.
  • „Filme mit einer Laufzeit von weniger als 90“ wird als objjecttype: movies runtimelessthan:90 interpretiert.
  • Wenn das Jahr 2019 ist, wird „in diesem Jahr veröffentlichte Filme mit einer Länge von mehr als 120“ als releasedafter:2019-1-1 releasedbefore:2019-12-31 objecttype:movies runtimegreaterthan:120 interpretiert.
  • Mit „sort Filme nach Veröffentlichungsdatum“ wird nach „objecttype: movies“ gefiltert. Die angezeigten Ergebnisse werden nach dem Veröffentlichungsdatum sortiert und die Standardsortierreihenfolge ist aufsteigend.

Interpretation reservierter Operatoren aktivieren

Sie können auch die reservierten integrierten Operatoren type, before, after und objecttype verwenden, um die Interpretation von Abfragen zu verbessern. Gehen Sie beim Indexieren eines Dokuments so vor:

  1. Füllen Sie das Feld updateTime in ItemMetadata, um die Operatoren before und after zu verwenden. Mit diesen Einstellungen kann Cloud Search die folgenden Abfragen interpretieren:

    • Bei "Filme von letzter Woche" werden alle Filme aufgelistet, die im Index der Vorwoche aktualisiert wurden.
    • Unter „Filme vor Januar 2019“ werden alle Filme aufgelistet, die vor Januar 2019 indexiert wurden.
  2. Füllen Sie das Feld mimeType in ItemMetadata, um die automatische Typerkennung zu verwenden. Bei der Abfrage „Actionvideos“ werden alle Dokumente mit Actionfilmen mit dem MIME-Typ application/mp4, application/mpeg4, application/x-shockwave-flash, video/ und application/vnd.google-apps.video aufgelistet.

Einschränkungen bei der Interpretation von Abfragen

Die Funktion zur Abfrageinterpretation unterliegt den folgenden Einschränkungen.

  • Die Interpretation von Abfragen funktioniert nur mit den folgenden Datenquellen-ACLs:
    • Alle Dokumente sind domain-öffentlich (alle Nutzer in der Domain haben Zugriff).
    • Alle Dokumente sind die Datenquelle öffentlich (jeder, der Zugriff auf die Datenquellen-ACL hat).
    • Die meisten Dokumente in der Datenquelle haben dieselbe ACL (alle Dokumente übernehmen die ACL desselben Containerelements), ohne dass zusätzliche Leser definiert sind.
  • Wenn mehrere Schemaoperatoren denselben Wert haben, hängt die Interpretation dieses Werts für einen Operator-Intent für eine Abfrage vom Gesamtkonfidenzfaktor ab, der vom Abfrageinterpretationssystem zurückgegeben wird. Angenommen, Sie haben die Attribute priority und severity mit denselben Operatornamen, die im Schema definiert sind. Angenommen, beide Operatoren können die Werte 0, 1, 2 oder 3 haben. In diesem Beispiel kann sich „0“ in einer Abfrage auf den Operatorwert für priority oder severity beziehen. Diese Werte sind mehrdeutig und das Konfidenzniveau ist niedriger.
  • Standardmäßig wird bei der Interpretation von Cloud Search-Abfragen die Groß-/Kleinschreibung von Feldwerten beim Interpretieren der Abfrage reduziert. Eine Ausnahme bilden Textoperatoren, die mit den Optionen exactMatchWithOperator definiert sind.
  • Der Operator source wird in Abfragen nicht unterstützt.
  • Abfragen, in denen operatorbasierte Begriffe und kostenlose Textbegriffe kombiniert sind, werden nicht interpretiert. So würde beispielsweise die Abfrage „Fälle mit p0-Priorität:s0“ nicht unterstützt werden, da „Fälle mit P0-Priorität“ ein kostenloser Textbegriff ist, während „severity:s0“ ein Operator ist.
  • Bei der Strategie zur Interpretation von Abfragen werden die interpretierten Ergebnisse immer mit normalen (nicht interpretierten, nach Relevanz sortierten) Ergebnissen vermischt. Die Ergebnisse werden nicht ganzseitig ersetzt.