Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Einführung in die Suche in BigQuery
Mit BigQuery-Suchindexen können Sie GoogleSQL verwenden, um bestimmte Datenelemente zu finden, die in unstrukturiertem Text und in semistrukturierten JSON-Daten auftreten, ohne die Tabellenschemas im Voraus kennen zu müssen.
Mit Suchindexen bietet BigQuery einen leistungsstarken Spalten- und Textsuchdienst in einer Plattform, der eine effiziente Zeilensuche ermöglicht, wenn Sie einzelne Datenzeilen suchen müssen. Ein häufiger Anwendungsfall ist die Loganalyse. Beispielsweise können Sie die Datenzeilen, die einem Nutzer für die Berichterstellung zur EU-Datenschutz-Grundverordnung (DSGVO) zugeordnet sind, oder bestimmte Fehlercodes in einer Textnutzlast ermitteln.
BigQuery speichert und verwaltet Ihre Indexe. Wenn Daten in BigQuery verfügbar sind, können Sie sie sofort mit der Funktion SEARCH oder anderen Operatoren und Funktionen abrufen, z. B. den Gleichheitsoperator (=), IN oder LIKE sowie bestimmte String- und JSON-Funktionen. Informationen zur Optimierung Ihrer Suchanfragen finden Sie in den Best Practices.
Anwendungsfälle
Mit BigQuery-Suchindexen können Sie die folgenden Aufgaben ausführen:
In BigQuery-Tabellen gespeicherte System-, Netzwerk- oder Anwendungslogs suchen
Identifizieren von Datenelementen zum Löschen, um regulatorische Prozesse zu erfüllen.
Fehlerbehebung für Entwickler unterstützen
Sicherheitsprüfungen durchführen
Dashboard erstellen, das sehr selektive Suchfilter erfordert
Vorverarbeitete Daten auf genaue Übereinstimmungen prüfen
Die für den Aufbau und die Aktualisierung Ihrer Suchindizes erforderliche Verarbeitung ist kostenlos, wenn die Gesamtgröße der indizierten Tabellen in Ihrem Unternehmen unter dem für Ihre Region geltenden Limit liegt. Wenn Sie die Indexierung über dieses Limit hinaus unterstützen möchten, müssen Sie eine eigene Reservierung für die Ausführung der Indexverwaltungsjobs bereitstellen.
Suchindexe verursachen Speicherkosten, wenn sie aktiv sind.
Die Indexspeichergröße finden Sie in der Ansicht INFORMATION_SCHEMA.SEARCH_INDEXES.
Rollen und Berechtigungen
Zum Erstellen eines Suchindex benötigen Sie die IAM-Berechtigung bigquery.tables.createIndex für die Tabelle, in der Sie den Index erstellen. Zum Löschen eines Suchindex benötigen Sie die Berechtigung bigquery.tables.deleteIndex. Jede der folgenden vordefinierten IAM-Rollen enthält die Berechtigungen, die Sie benötigen, um mit Suchindexen zu arbeiten:
Sie können einen Suchindex nicht direkt für eine Ansicht oder eine materialisierte Ansicht erstellen. Beim Aufrufen der Funktion SEARCH für eine Ansicht einer indexierten Tabelle wird jedoch der zugrunde liegende Suchindex verwendet.
Wenn Sie eine Tabelle umbenennen, nachdem Sie einen Suchindex darauf erstellt haben, wird der Index ungültig.
Die Funktion SEARCH ist für Punktabrufe vorgesehen. Die ungenaue Suche, die Rechtschreibkorrektur, Platzhalter und andere Arten von Dokumentsuchen sind nicht verfügbar.
Wenn der Suchindex noch nicht zu 100 % abgedeckt ist, wird Ihnen trotzdem der gesamte in der Ansicht INFORMATION_SCHEMA.SEARCH_INDEXES gemeldete Indexspeicher in Rechnung gestellt.
Abfragen, die die Funktion SEARCH verwenden oder durch Suchindizes optimiert werden, werden von der BigQuery BI Engine nicht beschleunigt.
Suchindexe werden nicht verwendet, wenn die indexierte Tabelle durch eine DML-Anweisung geändert wurde. Sie können jedoch verwendet werden, wenn das Prädikat, das mit Suchindexen optimiert werden kann, Teil einer Unterabfrage in einer DML-Anweisung ist.
Ein Suchindex wird in der folgenden Abfrage nicht verwendet:
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Schwer verständlich","hardToUnderstand","thumb-down"],["Informationen oder Beispielcode falsch","incorrectInformationOrSampleCode","thumb-down"],["Benötigte Informationen/Beispiele nicht gefunden","missingTheInformationSamplesINeed","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-08-25 (UTC)."],[[["\u003cp\u003eBigQuery search indexes enable efficient searching of unstructured text and semi-structured JSON data using GoogleSQL, even without prior knowledge of table schemas.\u003c/p\u003e\n"],["\u003cp\u003eThese indexes facilitate row lookups, making them useful for tasks such as log analytics, GDPR compliance, and identifying specific error codes.\u003c/p\u003e\n"],["\u003cp\u003eBigQuery manages the indexes, allowing for immediate data retrieval through the \u003ccode\u003eSEARCH\u003c/code\u003e function and other operators like \u003ccode\u003e=\u003c/code\u003e, \u003ccode\u003eIN\u003c/code\u003e, or \u003ccode\u003eLIKE\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eUsing search indexes for indexed tables below a certain size limit in your region incurs no processing costs for building or refreshing the index, however storage costs for active indexes do apply.\u003c/p\u003e\n"],["\u003cp\u003eSearch indexes have limitations, they cannot be directly applied to views or materialized views, they do not allow fuzzy searching or typo correction, and aren't utilized during DML statements on the indexed table itself, among other limitations.\u003c/p\u003e\n"]]],[],null,["# Introduction to search in BigQuery\n==================================\n\n| **Note:** This feature may not be available when using reservations that are created with certain BigQuery editions. For more information about which features are enabled in each edition, see [Introduction to\n| BigQuery editions](/bigquery/docs/editions-intro).\n\nBigQuery search indexes let you use GoogleSQL to\nefficiently find\nunique data elements that are buried in unstructured text and semi-structured\nJSON data, without having to know the table schemas in advance.\n\nWith search indexes, BigQuery provides a powerful columnar store\nand text search in one platform, enabling efficient row lookups when you need to\nfind individual rows of data. A common use case is log analytics. For example,\nyou might want to identify the rows of data associated with a user for General\nData Protection Regulation (GDPR) reporting, or to find specific error codes in\na text payload.\n\nBigQuery stores and manages your indexes, so that when data becomes\navailable in BigQuery, you can immediately retrieve it with the\n[`SEARCH` function](/bigquery/docs/reference/standard-sql/search_functions#search)\nor [other operators and functions](/bigquery/docs/search#operator_and_function_optimization),\nsuch as the equal (`=`), `IN`, or `LIKE` operators and certain string and JSON\nfunctions. To optimize your searches, read about\n[best practices](/bigquery/docs/search#best_practices).\n| **Important:** Join the [Search discussion group](https://groups.google.com/g/bq-search) to post questions and comments, and to follow the latest updates.\n\nUse cases\n---------\n\nBigQuery search indexes help you perform the following tasks:\n\n- Search system, network, or application logs stored in BigQuery tables.\n- Identify data elements for deletion to comply with regulatory processes.\n- Support developer troubleshooting.\n- Perform security audits.\n- Create a dashboard that requires highly selective search filters.\n- Search pre-processed data for exact matches.\n\nFor more information, see\n[Create a search index](/bigquery/docs/search-index) and\n[Search with an index](/bigquery/docs/search).\n\nPricing\n-------\n\nThere is no charge for the processing required to build and refresh your search\nindexes when the total size of indexed tables in your organization is below\nyour region's\n[limit](/bigquery/quotas#index_limits). To support indexing beyond this limit,\nyou need to\n[provide your own reservation](/bigquery/docs/search-index#use_your_own_reservation)\nfor handling the index-management jobs.\nSearch indexes incur storage costs when they are active.\nYou can find the index storage size in the\n[`INFORMATION_SCHEMA.SEARCH_INDEXES` view](/bigquery/docs/information-schema-indexes).\n\nRoles and permissions\n---------------------\n\nTo create a search index, you need the\n[`bigquery.tables.createIndex` IAM permission](/bigquery/docs/access-control#bq-permissions)\non the table where you're creating the index. To drop a search index, you need\nthe `bigquery.tables.deleteIndex` permission. Each of the following predefined\nIAM roles includes the permissions that you need to work with\nsearch indexes:\n\n- BigQuery Data Owner (`roles/bigquery.dataOwner`)\n- BigQuery Data Editor (`roles/bigquery.dataEditor`)\n- BigQuery Admin (`roles/bigquery.admin`)\n\nLimitations\n-----------\n\n- You can't create a search index directly on a view or materialized view, but calling the [`SEARCH` function](/bigquery/docs/reference/standard-sql/search_functions#search) on a view of an indexed table makes use of the underlying search index.\n- You can't create a search index on an external table.\n- If you rename a table after you create a search index on it, the index becomes invalid.\n- The `SEARCH` function is designed for point lookups. Fuzzy searching, typo correction, wildcards, and other types of document searches are not available.\n- If the search index is not yet at 100% coverage, you are still charged for all index storage that is reported in the [`INFORMATION_SCHEMA.SEARCH_INDEXES` view](/bigquery/docs/information-schema-indexes).\n- Queries that use the `SEARCH` function or are optimized by search indexes are not accelerated by [BigQuery BI Engine](/bigquery/docs/bi-engine-intro).\n- Search indexes are not used when the indexed table is modified by a DML\n statement, but they can be used when the predicate that is optimizable by\n search indexes is part of a subquery in a DML statement.\n\n - A search index is not used in the following query:\n\n ```googlesql\n DELETE FROM my_dataset.indexed_table\n WHERE SEARCH(user_id, '123');\n ```\n - A search index can be used in the following query:\n\n ```googlesql\n DELETE FROM my_dataset.other_table\n WHERE\n user_id IN (\n SELECT user_id\n FROM my_dataset.indexed_table\n WHERE SEARCH(user_id, '123')\n );\n ```\n- Search indexes are not used when the query references [Materialized Views](/bigquery/docs/materialized-views-intro).\n\n- Search indexes are not used in a [multi-statement transaction query](/bigquery/docs/transactions).\n\n- Search indexes are not used in a [time-travel query](/bigquery/docs/time-travel).\n\nWhat's next\n-----------\n\n- Learn more about [creating a search index](/bigquery/docs/search-index).\n- Learn more about [searching in a table with a search index](/bigquery/docs/search)."]]