Mediensuche filtern

Wenn Sie eine App für die Mediensuche haben, können Sie Metadaten zum Filtern der Suche verwenden. Abfragen. Auf dieser Seite wird erläutert, wie Sie mithilfe von Metadatenfeldern Ihre Suche auf eine bestimmte Gruppe von Dokumenten eingrenzen.

Hinweis

Sie müssen eine Medien-App und einen Datenspeicher erstellt und Daten aufgenommen haben. Weitere Informationen finden Sie unter Mediendatenspeicher erstellen und Medien-App erstellen.

Beispieldokumente

Hier findest du Beispieldokumente für Medien. Sie können sie sich beim Lesen dieser Seite noch einmal ansehen.

{"id":"172851","schemaId":"default_schema","jsonData":"{\"title\":\"Avatar: Creating the World of Pandora (2010)\",\"categories\":[\"Documentary\"],\"uri\":\"http://mytestdomain.movie/content/172851\",\"available_time\":\"2023-01-01T00:00:00Z\",\"media_type\":\"movie\"}"}
{"id":"243308","schemaId":"default_schema","jsonData":"{\"title\":\"Capturing Avatar (2010)\",\"categories\":[\"Documentary\"],\"uri\":\"http://mytestdomain.movie/content/243308\",\"available_time\":\"2023-01-01T00:00:00Z\",\"media_type\":\"movie\"}"}
{"id":"280218","schemaId":"default_schema","jsonData":"{\"title\":\"Avatar: The Way of Water (2022)\",\"categories\":[\"Action\",\"Adventure\",\"Sci-Fi\"],\"uri\":\"http://mytestdomain.movie/content/280218\",\"available_time\":\"2023-01-01T00:00:00Z\",\"media_type\":\"movie\"}"}
{"id":"72998","schemaId":"default_schema","jsonData":"{\"title\":\"Avatar (2009)\",\"categories\":[\"Action\",\"Adventure\",\"Sci-Fi\",\"IMAX\"],\"uri\":\"http://mytestdomain.movie/content/72998\",\"available_time\":\"2023-01-01T00:00:00Z\",\"media_type\":\"movie\"}"}

Filterausdruckssyntax

Machen Sie sich mit der Syntax für Filterausdrücke vertraut, die Sie zum Definieren Ihren Suchfilter. Die Syntax des Filterausdrucks kann durch die folgende Extended Backus-Naur-Form:

  # A single expression or multiple expressions that are joined by "AND" or "OR".
  filter = expression, { " AND " | "OR", expression };
  # Expressions can be prefixed with "-" or "NOT" to express a negation.
  expression = [ "-" | "NOT " ],
    # A parenthetical expression.
    | "(", expression, ")"
    # A simple expression applying to a text field.
    # Function "ANY" returns true if the field contains any of the literals.
    ( text_field, ":", "ANY", "(", literal, { ",", literal }, ")"
    # A simple expression applying to a numerical field. Function "IN" returns true
    # if a field value is within the range. By default, lower_bound is inclusive and
    # upper_bound is exclusive.
    | numerical_field, ":", "IN", "(", lower_bound, ",", upper_bound, ")"
    # A simple expression that applies to a numerical field and compares with a double value.
    | numerical_field, comparison, double );
  # A lower_bound is either a double or "*", which represents negative infinity.
  # Explicitly specify inclusive bound with the character 'i' or exclusive bound
  # with the character 'e'.
  lower_bound = ( double, [ "e" | "i" ] ) | "*";
  # An upper_bound is either a double or "*", which represents infinity.
  # Explicitly specify inclusive bound with the character 'i' or exclusive bound
  # with the character 'e'.
  upper_bound = ( double, [ "e" | "i" ] ) | "*";
  # Supported comparison operators.
  comparison = "<=" | "<" | ">=" | ">" | "=";
  # A literal is any double quoted string. You must escape backslash (\) and
  # quote (") characters.
  literal = double quoted string;
  text_field = text field - for example, category;
  numerical_field = numerical field - for example, score;

So filtern Sie die Mediensuche mithilfe von Metadaten:

  1. Suchen Sie Ihre Datenspeicher-ID. Wenn Sie bereits einen Datenspeicher haben ID verwenden, fahren Sie mit dem nächsten Schritt fort.

    1. Rufen Sie in der Google Cloud Console die Seite Agent Builder auf und klicken Sie im Navigationsmenü auf Datenspeicher.

      Zur Seite „Datenspeicher“

    2. Klicken Sie auf den Namen des Datenspeichers.

    3. Rufen Sie auf der Datenseite Ihres Datenspeichers die Datenspeicher-ID ab.

  2. Legen Sie das Dokumentfeld oder die Dokumentfelder fest, nach denen Sie filtern möchten. Für die Dokumente unter Vorab können Sie beispielsweise das Feld categories als Filter verwenden.

    In Filterausdrücken können nur indexierbare Felder verwendet werden. So prüfen Sie, ob ein Feld indexierbar ist:

    1. Rufen Sie in der Google Cloud Console die Seite Agent Builder auf und klicken Sie im Navigationsmenü auf Datenspeicher.

      Zur Seite „Datenspeicher“ Seite

    2. Klicken Sie auf den Namen Ihres Datenspeichers.

    3. Klicken Sie in der Spalte Name auf den Datenspeicher.

    4. Klicken Sie auf den Tab Schema, um das Schema für den Datenspeicher aufzurufen. Wenn Indexierbar für das Feld Folgendes ist:

      • Wenn Sie ausgewählt haben, kann dieses Feld gefiltert werden. für die Suche aktiviert; überspringen Sie Schritt 3.

      • nicht ausgewählt, dann folgen Schritt 3, um das Feld für die Indexierung zu aktivieren.

      • Nicht verfügbar , kann das Feld nicht indexiert werden.

  3. So machen Sie ein Feld wie das Feld categories filterbar:

    1. Rufen Sie in der Google Cloud Console die Seite Agent Builder auf und klicken Sie im Navigationsmenü auf Apps.

      Zur Seite „Apps“

    2. Klicken Sie auf die App für die Mediensuche.

    3. Klicken Sie im Navigationsmenü auf Daten.

    4. Klicken Sie auf den Tab Schema. Auf diesem Tab werden die aktuellen Feldeinstellungen angezeigt.

    5. Klicken Sie auf Bearbeiten.

    6. Klicken Sie in der Zeile Kategorien das Kästchen Indexierbar an und klicken Sie dann auf Speichern.

    7. Warten Sie sechs Stunden, bis die Schemaänderung wirksam wird. Nach sechs Stunden können Sie mit dem nächsten Schritt fortfahren.

  4. Suchergebnisse abrufen

    curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/servingConfigs/default_search:search" \
    -d '{
    "query": "QUERY",
    "filter": "FILTER"
    }'
    
    • PROJECT_ID: Die ID Ihres Projekts.
    • DATA_STORE_ID: Die ID Ihres Datenspeichers.
    • QUERY: Der zu suchende Abfragetext.
    • FILTER: Ein Textfeld, mit dem Sie Ihre Suche mit einem Filterausdruck filtern können.

    Angenommen, Sie möchten die Filme im Abschnitt Vorab durchsuchen und nur Suchergebnisse für Filme erhalten, die (1) das Wort „Avatar“ enthalten und (2) der Kategorie „Dokumentarfilm“ zugewiesen sind. Fügen Sie dazu die folgenden Erklärungen Rufen Sie uns an:

    "query": "avatar",
    "filter": "categories: ANY(\"Documentary\")"
    

    Weitere Informationen finden Sie im Artikel zur search-Methode.

    Klicken Sie hier, um eine Beispielantwort aufzurufen.

    Wenn Sie eine Suche wie die im vorherigen Verfahren beschriebene ausführen, erhalten Sie eine Antwort, die in etwa so aussieht: Beachten Sie, dass der enthält nur die Avatar-Dokumentationen.

    {
      "results": [
        {
          "id": "243308",
          "document": {
            "name": "projects/431678329718/locations/global/collections/default_collection/dataStores/rdds3_1698205785399/branches/0/documents/243308",
            "id": "243308",
            "structData": {
              "categories": [
                "Documentary"
              ],
              "title": "Capturing Avatar (2010)",
              "uri": "http://mytestdomain.movie/content/243308",
              "media_type": "movie"
            }
          }
        },
        {
          "id": "172851",
          "document": {
            "name": "projects/431678329718/locations/global/collections/default_collection/dataStores/rdds3_1698205785399/branches/0/documents/172851",
            "id": "172851",
            "structData": {
              "categories": [
                "Documentary"
              ],
              "uri": "http://mytestdomain.movie/content/172851",
              "media_type": "movie",
              "title": "Avatar: Creating the World of Pandora (2010)"
            }
          }
        }
      ],
      "totalSize": 2,
      "attributionToken": "XfBcCgwIvIzJqwYQ2_qNxwMSJDY1NzEzNmY1LTAwMDAtMmFhMy05YWU3LTE0MjIzYmIwOGVkMiIFTUVESUEqII6-nRXFy_MXnIaOIsLwnhXUsp0VpovvF6OAlyKiho4i",
      "guidedSearchResult": {},
      "summary": {}
    }