Knowledge Catalog (formerly Dataplex Universal Catalog) search lets you discover resources across your organization with support of natural language search with semantic matching, keyword search, and an extensive search syntax.
Use cases
The following list describes common search use cases, along with descriptions and example queries:
Targeted asset lookup: Find a specific asset by searching for keywords related to the asset name, columns, or description.
Example queries
retail_transactions_2026customer_idcolumn:customer_id
Broad data discovery: Identify relevant assets across your organization using open-ended natural language or keyword queries.
Example queries
quarterly financial reportsad campaign click through rates tablesserver health metricsaudit logs system=bigquery
Scoped asset retrieval for workflows: Enumerate assets within a specific container, such as a project, or with specific properties, such as type or system. This approach is frequently used for programmatic and agentic workflows.
Example queries
type=table projectid:banking-prod aspect:classification.tier=PIIsystem=spanner projectid:inventory-service (parent=marketing_analytics OR parent=finance_analytics)
Access search in Knowledge Catalog
You have the following options to access search in Knowledge Catalog:
- Through the Search page in Google Cloud console. For more information, see the Search for resources section in this document.
gcloud dataplex entries searchgcloud CLI.searchEntriesAPI and Cloud Client Libraries.- Remote MCP server and MCP Toolbox for Databases for interactive usage and to power your agentic and programmatic workloads.
How it works
Search automatically indexes all context for data assets maintained in Knowledge Catalog. This includes the following:
- Metadata automatically ingested from Google Cloud data sources such as BigQuery and Cloud SQL
- Context for resources you ingest through connectors and integrations
- Additional context you create for resources (for example representing business context or describing data semantics) and captured in the form of aspects or linked business terms.
When processing your query, search applies a combination of semantic and keyword matching. The following table describes the query types you can use with Knowledge Catalog search along with descriptions and sample queries:
| Query type | Usage | Examples |
|---|---|---|
| Single keyword | For exact and substring matching across metadata elements, such as asset name, description, and schema. | prd_fin_invoices_fct_v02 |
| Partial keywords and tokenized fragments | Matches substrings across metadata content, finding resources even with abbreviated terms, separated words, or naming variations. | fin transactions 2026 (matches
prd_fin_transactions_fy2026_raw) |
| Natural language queries | Uses semantic matching without requiring exact name or column matches. | customer churn prediction features |
| Structured predicates | Combines free-text queries with explicit predicate filters for narrowing down search results. | audit logs system=bigquery |
| Extended syntax | For precise search, narrowed down to a specific scope. Extended syntax is most often used in agentic and programmatic use cases. For more information, see Search syntax. | (system:bigquery OR system:spanner) AND
column:credit_card_number aspect:classification.tier=PII
-projectid:sandbox-project |
Search scope
The search results in Knowledge Catalog respect permissions that you have over the corresponding resources in source systems.
For example, if you have BigQuery metadata read access to an object, that object appears in your Knowledge Catalog search results. If you have access to a BigQuery table but not to the dataset containing that table, the table still appears as expected in the Knowledge Catalog search.
By default, search is scoped to your organization. Results include only resources from the same organization as the project you're searching in.
The search results include only those resources that belong to the same VPC Service Controls perimeter as the project under which search is performed. When using the Google Cloud console, this is the project that is selected in the console.
To broaden the scope of your search results beyond the resources within your project's VPC Service Controls perimeter, use VPC Service Controls ingress and egress rules. These rules facilitate private and efficient data exchange across your organization. You can configure ingress and egress rules using the Google Cloud console or through JSON or YAML files. Refer to the following YAML example and consult the VPC Service Controls documentation to tailor the rule to your specific requirements.
egressPolicies:
- egressFrom:
identityType: ANY_USER_ACCOUNT
egressTo:
# Specify which resources should be present in the search results. In this example,
# BigQuery.
operations:
- methodSelectors:
- method: '*'
serviceName: bigquery.googleapis.com
# Specify project ids under which the search is performed.
resources:
- projects/SEARCH_PROJECT_ID
ingressPolicies:
- ingressFrom:
identityType: ANY_USER_ACCOUNT
sources:
- accessLevel: '*'
ingressTo:
# Specify which resources should be present in the search results. In this example,
# BigQuery.
operations:
- methodSelectors:
- method: '*'
serviceName: bigquery.googleapis.com
# Specify project ids to expose in search results.
resources:
- projects/INGRESS_PROJECT_ID
For more information about the Identity and Access Management roles that you need to use Knowledge Catalog search, see Knowledge Catalog IAM roles.
Isolate search results by environment using VPC Service Controls
To isolate Knowledge Catalog search results between environments like development, test, and production, configure separate VPC Service Controls perimeters for each environment. Assign both the projects that contain the data assets and the projects that are used for performing searches to the corresponding environment's perimeter. Searches that are performed from a project within a specific perimeter will only return results for assets that are also located within that same perimeter.
Recall limitations in search
Knowledge Catalog search queries don't guarantee full recall, which means that the search might not return results that match your query. Additionally, returned (and not returned) results might vary if you repeat search queries.
To query all Knowledge Catalog metadata, you can export the metadata to Cloud Storage and then query it from BigQuery. For more information, see Export metadata.
Before you begin
Before you perform search, ensure that you are granted the required roles and have enabled the necessary API.
Required roles
To get the permissions that you need to search for entries and access search results in Knowledge Catalog, ask your administrator to grant you the following IAM roles:
-
Search for entries:
- Dataplex Catalog Admin (
roles/dataplex.catalogAdmin) on the project used for search - Dataplex Catalog Editor (
roles/dataplex.catalogEditor) on the project used for search - Dataplex Catalog Viewer (
roles/dataplex.catalogViewer) on the project used for search
- Dataplex Catalog Admin (
-
Search for metadata for BigQuery datasets and tables:
BigQuery Metadata Viewer (
roles/bigquery.metadataViewer) on the dataset or table -
Search for custom entries:
Dataplex Catalog Viewer (
roles/dataplex.catalogViewer) on the project
For more information about granting roles, see Manage access to projects, folders, and organizations.
You might also be able to get the required permissions through custom roles or other predefined roles.
Permissions on search results are checked independently of the selected project.
The search results in Knowledge Catalog are scoped according to your role. To search for an asset in Knowledge Catalog, you must have permissions to access the corresponding resource in the source system. For more information, see the Search scope section of this document.
For example, to search for BigQuery datasets, tables, views, and models, you need respective permissions for those entries. For more information, see BigQuery permissions.
The following list describes the minimum permissions required:
- To search for a table, you need
bigquery.tables.getpermission for that table. - To search for a dataset, you need
bigquery.datasets.getpermission for that dataset.
As another example, to search for Cloud SQL instances, databases, schemas, tables, and views, you need respective permissions on those entries. For more information, see Cloud SQL roles and permissions.
Enable the API
Enable the Dataplex API.
Roles required to enable APIs
To enable APIs, you need the serviceusage.services.enable permission. If you
created the project, then you likely already have this permission through the
Owner role (roles/owner). Otherwise, you can get this permission through the
Service Usage Admin role (roles/serviceusage.serviceUsageAdmin).
Learn how to grant roles.
Search for resources
Console
To search for resources, follow these steps:
In the Google Cloud console, go to the Knowledge Catalog Search page.
If you see the Try natural language search button prompt, click it. By default, natural language search is selected.
In the Find resources across projects with natural language field, enter your query and then click Enter.
To refine your search, click Filters. For the list of available filters, see Filters.
To view more information about the searched resource, in the search results, click the resource name. This opens the entry details page.
Google Cloud CLI
To search for resources, use the
gcloud dataplex entries search command:
gcloud dataplex entries search 'foo' \ --project=PROJECT_ID \ [--semantic-search]
Replace PROJECT_ID with the ID of the Google Cloud project.
C#
Before trying this sample, follow the C# setup instructions in the
Knowledge Catalog quickstart using
client libraries.
For more information, see the
Knowledge Catalog C# API
reference documentation.
To authenticate to Knowledge Catalog, set up Application Default Credentials.
For more information, see
Set up authentication for a local development environment.
C#
Go
Before trying this sample, follow the Go setup instructions in the
Knowledge Catalog quickstart using
client libraries.
For more information, see the
Knowledge Catalog Go API
reference documentation.
To authenticate to Knowledge Catalog, set up Application Default Credentials.
For more information, see
Set up authentication for a local development environment.
Go
Java
Before trying this sample, follow the Java setup instructions in the
Knowledge Catalog quickstart using
client libraries.
For more information, see the
Knowledge Catalog Java API
reference documentation.
To authenticate to Knowledge Catalog, set up Application Default Credentials.
For more information, see
Set up authentication for a local development environment.
Java
Node.js
Before trying this sample, follow the Node.js setup instructions in the
Knowledge Catalog quickstart using
client libraries.
For more information, see the
Knowledge Catalog Node.js API
reference documentation.
To authenticate to Knowledge Catalog, set up Application Default Credentials.
For more information, see
Set up authentication for a local development environment.
Node.js
PHP
Before trying this sample, follow the PHP setup instructions in the
Knowledge Catalog quickstart using
client libraries.
For more information, see the
Knowledge Catalog PHP API
reference documentation.
To authenticate to Knowledge Catalog, set up Application Default Credentials.
For more information, see
Set up authentication for a local development environment.
PHP
Python
Before trying this sample, follow the Python setup instructions in the
Knowledge Catalog quickstart using
client libraries.
For more information, see the
Knowledge Catalog Python API
reference documentation.
To authenticate to Knowledge Catalog, set up Application Default Credentials.
For more information, see
Set up authentication for a local development environment.
Python
Ruby
Before trying this sample, follow the Ruby setup instructions in the
Knowledge Catalog quickstart using
client libraries.
For more information, see the
Knowledge Catalog Ruby API
reference documentation.
To authenticate to Knowledge Catalog, set up Application Default Credentials.
For more information, see
Set up authentication for a local development environment.
Ruby
REST
To search for resources, use the
searchEntries method with the semanticSearch parameter set to true.
POST https://dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION:searchEntries?query=foo&semanticSearch=true
Replace the following:
- PROJECT_ID: the ID of your Google Cloud project
- LOCATION: the region where the project exists (for example,
us-central1)
Filters
Filters let you narrow down the search results.
When you provide filters in multiple sections, they are evaluated using the
AND logical operator. The search results contain resources that match at least
one condition from every selected section. For example, if you select the
BigQuery system and the dataset resource type, the search
results include BigQuery datasets but not Vertex AI
datasets.
If you select multiple filters within a single section, they are evaluated using
the OR logical operator. For example, if you select the dataset resource type
and the table resource type, the search results include both datasets and
tables.
The following filters are available:
- Scope: search across the organization (default), the current project, or only for starred resources. For more information, see the Search scope section of this document.
- Systems: the Google Cloud service that the resource belongs to, such as BigQuery. The Knowledge Catalog system contains entry groups.
- Projects: the projects to search in.
- Type: the resource type, such as BigQuery connection, Cloud Storage bucket, or database. Depending on the resource type, you can also filter by subtype, such as the connection type or SQL dialect.
- Select locations: the locations to search in.
- Select datasets: the search results are limited to BigQuery resources that belong to the selected BigQuery datasets. In the Type to filter field, enter the name of the dataset.
- Aspect types: the Knowledge Catalog aspect types that are associated with the resource that you're searching for. To filter by aspect values, click Filter on aspect type values, and then select the values.
View details of an asset returned by search
Console
Use Knowledge Catalog search to view the details of an asset.
Search for an asset in Knowledge Catalog.
In the search results, click the asset for which you want to view the details.
The entry details page opens. The page includes the following sections:
- Entry details: includes information such as the entry type, system, platform, fully qualified name, creation time, last modification time, description, and stewards.
- Overview: an overview of the entry, if available.
- Aspects: the required and optional aspects defined for the entry. For more information, see Categories of aspects.
gcloud
gcloud dataplex entries lookup command:
gcloud dataplex entries lookup ENTRY_ID \ --entry-group=ENTRY_GROUP_ID \ --location=LOCATION \ --project=PROJECT_ID
Replace the following:
ENTRY_ID: the ID of the entryENTRY_GROUP_ID: the ID of the entry groupLOCATION: the region where the project existsPROJECT_ID: the ID of the Google Cloud project
C#
Before trying this sample, follow the C# setup instructions in the
Knowledge Catalog quickstart using
client libraries.
For more information, see the
Knowledge Catalog C# API
reference documentation.
To authenticate to Knowledge Catalog, set up Application Default Credentials.
For more information, see
Set up authentication for a local development environment.
C#
Go
Before trying this sample, follow the Go setup instructions in the
Knowledge Catalog quickstart using
client libraries.
For more information, see the
Knowledge Catalog Go API
reference documentation.
To authenticate to Knowledge Catalog, set up Application Default Credentials.
For more information, see
Set up authentication for a local development environment.
Go
Java
Before trying this sample, follow the Java setup instructions in the
Knowledge Catalog quickstart using
client libraries.
For more information, see the
Knowledge Catalog Java API
reference documentation.
To authenticate to Knowledge Catalog, set up Application Default Credentials.
For more information, see
Set up authentication for a local development environment.
Java
Node.js
Before trying this sample, follow the Node.js setup instructions in the
Knowledge Catalog quickstart using
client libraries.
For more information, see the
Knowledge Catalog Node.js API
reference documentation.
To authenticate to Knowledge Catalog, set up Application Default Credentials.
For more information, see
Set up authentication for a local development environment.
Node.js
PHP
Before trying this sample, follow the PHP setup instructions in the
Knowledge Catalog quickstart using
client libraries.
For more information, see the
Knowledge Catalog PHP API
reference documentation.
To authenticate to Knowledge Catalog, set up Application Default Credentials.
For more information, see
Set up authentication for a local development environment.
PHP
Python
Before trying this sample, follow the Python setup instructions in the
Knowledge Catalog quickstart using
client libraries.
For more information, see the
Knowledge Catalog Python API
reference documentation.
To authenticate to Knowledge Catalog, set up Application Default Credentials.
For more information, see
Set up authentication for a local development environment.
Python
Ruby
Before trying this sample, follow the Ruby setup instructions in the
Knowledge Catalog quickstart using
client libraries.
For more information, see the
Knowledge Catalog Ruby API
reference documentation.
To authenticate to Knowledge Catalog, set up Application Default Credentials.
For more information, see
Set up authentication for a local development environment.
Ruby
REST
To view the details of an asset, use the lookupEntry method.
Keyword-only search mode
Knowledge Catalog provides keyword-only search mode for backward compatibility, with the standard search mode supporting both semantic and keyword matching.
We recommend using the standard search mode, unless keyword-only search is required for backward compatibility.
Keyword-only search filters
For keyword search, filters are grouped into the following sections:
- Systems such as BigQuery, Cloud SQL, and others. The Knowledge Catalog system contains custom entries.
- Aspects list all aspects available to you. To filter by aspect values, click Filter on aspect values, and then select the values.
- Project lists all projects available to you.
- Type aliases are data types associated with an entry type. An entry
type might have the name
projects/test-project/locations/us/entryTypes/my-entry-type, but you can search for it using its type aliasesTABLEorDATABASE. You can set one or more type aliases when you create or update an entry type. - Datasets come from BigQuery.
The filters Systems, Type aliases, Project, and Datasets are displayed depending on the current query in the Search field.
Use keyword-only search
To use the keyword-only search, do the following:
Console
- If you are in the natural language search mode, click Return to keyword search.
- In the Find resources across projects field, enter your query.
To refine your search, use the Filters panel.
For the list of available filters, see Keyword search filters.
You can manually add the following filters:
- Add a project filter: in Project, click Add project. Search for a specific project, select the project, and then click Open.
- Add an aspect type filter: in Aspects, click the Add more aspect types menu. Search for a specific template, select it, and then click OK.
Optional: In addition to the assets available to you, you can search for resources that are publicly available in Google Cloud by selecting Include public datasets.
Use the following tips to construct a search query:
- Enclose your search expression in quotes if it contains spaces. For
example,
"search terms". - Precede a keyword with
NOTto match the logical negation of thekeyword:termfilter. You can also useANDandORBoolean operators to combine search expressions. TheAND,OR, andNOToperators aren't case-sensitive.
For example,
NOT column:termlists all columns except those that match the specified term. For a list of keywords and other terms you can use in a Knowledge Catalog search expression, see Search syntax.- Enclose your search expression in quotes if it contains spaces. For
example,
gcloud
To search for resources using keyword-only search mode, use the
gcloud dataplex entries search command
and omit the --semantic-search flag, or use the
--no-semantic-search flag.
REST
To search for resources using keyword-only search mode, use the
searchEntries method
with the semanticSearch query parameter set to false.
Limitations
Search has the following limitations:
- Public resources are outside the scope of natural language search.
- Aspects attached to entry links are outside the scope of natural language search.
What's next
- Understand search syntax for Knowledge Catalog.
- Learn more about metadata management in Knowledge Catalog.
- Learn how to enrich entries and entry links with metadata using aspects.
- Learn how to manage entries and ingest custom sources.
- Try Knowledge Catalog use cases.
- Leverage answering complex natural language queries with the Knowledge Catalog discovery agent.