Usar a pesquisa somente por palavras-chave no Knowledge Catalog

Use a pesquisa somente por palavra-chave no Knowledge Catalog para encontrar recursos usando palavras-chave, filtros e uma sintaxe definidos. A pesquisa somente por palavra-chave oferece controle preciso sobre suas consultas e permite restringir os resultados com base em campos de metadados.

Antes de começar

Antes de fazer a pesquisa, verifique se você tem os papéis necessários e ativou a API necessária.

Funções exigidas

Para ter as permissões necessárias para pesquisar entradas e acessar resultados da pesquisa no Knowledge Catalog, peça ao administrador para conceder a você os seguintes papéis do IAM:

Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.

Usar a pesquisa somente por palavra-chave

Console

Para pesquisar recursos usando a pesquisa por palavra-chave, siga estas etapas:

  1. No console Google Cloud , acesse a página Pesquisa do Knowledge Catalog.

    Acesse Pesquisar

  2. Se a plataforma de pesquisa estiver definida como Data Catalog, no menu Escolher plataforma de pesquisa, selecione Knowledge Catalog.

  3. No campo Encontrar recursos em todos os projetos, insira sua consulta.

  4. Para refinar sua pesquisa, use o painel Filtros. Os seguintes filtros estão disponíveis:

    • Os sistemas fornecem uma lista de sistemas disponíveis, como BigQuery ou Cloud SQL. O sistema do Knowledge Catalog contém entradas personalizadas.
    • Com os aspectos (tags), é possível consultar recursos marcados com um modelo específico. Use o menu Personalizar para refinar ainda mais os resultados e filtrar por valores de aspectos específicos.
    • Projeto lista os projetos em que você pode definir o escopo da pesquisa.
    • Os aliases de tipo são tipos de dados associados a um tipo de entrada. Um tipo de entrada pode ter o nome projects/test-project/locations/us/entryTypes/my-entry-type, mas você pode pesquisar usando os aliases de tipo TABLE ou DATABASE. É possível definir um ou mais aliases de tipo ao criar ou atualizar um tipo de entrada.
    • Os conjuntos de dados são provenientes do BigQuery.

    É possível adicionar manualmente os seguintes filtros:

    • Adicione um filtro de projeto: em Projeto, clique em Adicionar projeto. Pesquise um projeto específico, selecione-o e clique em Abrir.
    • Adicione um filtro de tipo de aspecto: em Aspectos, clique no menu Adicionar mais tipos de aspecto. Procure um modelo específico, selecione-o e clique em OK.
  5. Opcional: além dos recursos disponíveis para você, é possível pesquisar recursos disponíveis publicamente em Google Cloud selecionando Incluir conjuntos de dados públicos.

    Use as dicas a seguir para criar uma consulta de pesquisa:

    • Coloque sua expressão de pesquisa entre aspas se ela contiver espaços. Por exemplo, "search terms"
    • Preceda uma palavra-chave com NOT para corresponder à negação lógica do filtro keyword:term. Você também pode usar os operadores booleanos AND e OR para combinar expressões de pesquisa. Os operadores AND, OR e NOT não diferenciam maiúsculas de minúsculas.

    Por exemplo, NOT column:term lista todas as colunas, exceto aquelas que correspondem ao termo especificado.

  6. Para ver mais informações sobre o recurso pesquisado, clique no nome dele nos resultados da pesquisa. A página de detalhes da entrada será aberta.

gcloud

Para pesquisar recursos, use o comando gcloud dataplex entries search.

C#

C#

Antes de testar esta amostra, siga as instruções de configuração do C# no Guia de início rápido do Knowledge Catalog: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Knowledge Catalog C#.

Para autenticar no Knowledge Catalog, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.

using Google.Api.Gax;
using Google.Api.Gax.ResourceNames;
using Google.Cloud.Dataplex.V1;
using System;

public sealed partial class GeneratedCatalogServiceClientSnippets
{
    /// <summary>Snippet for SearchEntries</summary>
    /// <remarks>
    /// This snippet has been automatically generated and should be regarded as a code template only.
    /// It will require modifications to work:
    /// - It may require correct/in-range values for request initialization.
    /// - It may require specifying regional endpoints when creating the service client as shown in
    ///   https://cloud.google.com/dotnet/docs/reference/help/client-configuration#endpoint.
    /// </remarks>
    public void SearchEntriesRequestObject()
    {
        // Create client
        CatalogServiceClient catalogServiceClient = CatalogServiceClient.Create();
        // Initialize request argument(s)
        SearchEntriesRequest request = new SearchEntriesRequest
        {
            LocationName = LocationName.FromProjectLocation("[PROJECT]", "[LOCATION]"),
            Query = "",
            OrderBy = "",
            Scope = "",
            SemanticSearch = false,
        };
        // Make the request
        PagedEnumerable<SearchEntriesResponse, SearchEntriesResult> response = catalogServiceClient.SearchEntries(request);

        // Iterate over all response items, lazily performing RPCs as required
        foreach (SearchEntriesResult item in response)
        {
            // Do something with each item
            Console.WriteLine(item);
        }

        // Or iterate over pages (of server-defined size), performing one RPC per page
        foreach (SearchEntriesResponse page in response.AsRawResponses())
        {
            // Do something with each page of items
            Console.WriteLine("A page of results:");
            foreach (SearchEntriesResult item in page)
            {
                // Do something with each item
                Console.WriteLine(item);
            }
        }

        // Or retrieve a single page of known size (unless it's the final page), performing as many RPCs as required
        int pageSize = 10;
        Page<SearchEntriesResult> singlePage = response.ReadPage(pageSize);
        // Do something with the page of items
        Console.WriteLine($"A page of {pageSize} results (unless it's the final page):");
        foreach (SearchEntriesResult item in singlePage)
        {
            // Do something with each item
            Console.WriteLine(item);
        }
        // Store the pageToken, for when the next page is required.
        string nextPageToken = singlePage.NextPageToken;
    }
}

Go

Go

Antes de testar esta amostra, siga as instruções de configuração do Go no Guia de início rápido do Knowledge Catalog: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Knowledge Catalog Go.

Para autenticar no Knowledge Catalog, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.


//go:build examples

package main

import (
	"context"

	dataplex "cloud.google.com/go/dataplex/apiv1"
	dataplexpb "cloud.google.com/go/dataplex/apiv1/dataplexpb"
	"google.golang.org/api/iterator"
)

func main() {
	ctx := context.Background()
	// This snippet has been automatically generated and should be regarded as a code template only.
	// It will require modifications to work:
	// - It may require correct/in-range values for request initialization.
	// - It may require specifying regional endpoints when creating the service client as shown in:
	//   https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options
	c, err := dataplex.NewCatalogClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &dataplexpb.SearchEntriesRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/cloud.google.com/go/dataplex/apiv1/dataplexpb#SearchEntriesRequest.
	}
	it := c.SearchEntries(ctx, req)
	for {
		resp, err := it.Next()
		if err == iterator.Done {
			break
		}
		if err != nil {
			// TODO: Handle error.
		}
		// TODO: Use resp.
		_ = resp

		// If you need to access the underlying RPC response,
		// you can do so by casting the `Response` as below.
		// Otherwise, remove this line. Only populated after
		// first call to Next(). Not safe for concurrent access.
		_ = it.Response.(*dataplexpb.SearchEntriesResponse)
	}
}

Java

Java

Antes de testar esta amostra, siga as instruções de configuração do Java no Guia de início rápido do Knowledge Catalog: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Knowledge Catalog Java.

Para autenticar no Knowledge Catalog, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.

import com.google.cloud.dataplex.v1.CatalogServiceClient;
import com.google.cloud.dataplex.v1.LocationName;
import com.google.cloud.dataplex.v1.SearchEntriesRequest;
import com.google.cloud.dataplex.v1.SearchEntriesResult;

public class SyncSearchEntries {

  public static void main(String[] args) throws Exception {
    syncSearchEntries();
  }

  public static void syncSearchEntries() throws Exception {
    // This snippet has been automatically generated and should be regarded as a code template only.
    // It will require modifications to work:
    // - It may require correct/in-range values for request initialization.
    // - It may require specifying regional endpoints when creating the service client as shown in
    // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
    try (CatalogServiceClient catalogServiceClient = CatalogServiceClient.create()) {
      SearchEntriesRequest request =
          SearchEntriesRequest.newBuilder()
              .setName(LocationName.of("[PROJECT]", "[LOCATION]").toString())
              .setQuery("query107944136")
              .setPageSize(883849137)
              .setPageToken("pageToken873572522")
              .setOrderBy("orderBy-1207110587")
              .setScope("scope109264468")
              .setSemanticSearch(true)
              .build();
      for (SearchEntriesResult element : catalogServiceClient.searchEntries(request).iterateAll()) {
        // doThingsWith(element);
      }
    }
  }
}

Node.js

Node.js

Antes de testar esta amostra, siga as instruções de configuração do Node.js no Guia de início rápido do Knowledge Catalog: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Knowledge Catalog Node.js.

Para autenticar no Knowledge Catalog, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.

/**
 * This snippet has been automatically generated and should be regarded as a code template only.
 * It will require modifications to work.
 * It may require correct/in-range values for request initialization.
 * TODO(developer): Uncomment these variables before running the sample.
 */
/**
 *  Required. The project to which the request should be attributed in the
 *  following form: `projects/{project}/locations/global`.
 */
// const name = 'abc123'
/**
 *  Required. The query against which entries in scope should be matched.
 *  The query syntax is defined in Search syntax for Dataplex Universal
 *  Catalog (https://cloud.google.com/dataplex/docs/search-syntax).
 */
// const query = 'abc123'
/**
 *  Optional. Number of results in the search page. If <=0, then defaults
 *  to 10. Max limit for page_size is 1000. Throws an invalid argument for
 *  page_size > 1000.
 */
// const pageSize = 1234
/**
 *  Optional. Page token received from a previous `SearchEntries` call. Provide
 *  this to retrieve the subsequent page.
 */
// const pageToken = 'abc123'
/**
 *  Optional. Specifies the ordering of results.
 *  Supported values are:
 *  * `relevance`
 *  * `last_modified_timestamp`
 *  * `last_modified_timestamp asc`
 */
// const orderBy = 'abc123'
/**
 *  Optional. The scope under which the search should be operating. It must
 *  either be `organizations/<org_id>` or `projects/<project_ref>`. If it is
 *  unspecified, it defaults to the organization where the project provided in
 *  `name` is located.
 */
// const scope = 'abc123'
/**
 *  Optional. Specifies whether the search should understand the meaning and
 *  intent behind the query, rather than just matching keywords.
 */
// const semanticSearch = true

// Imports the Dataplex library
const {CatalogServiceClient} = require('@google-cloud/dataplex').v1;

// Instantiates a client
const dataplexClient = new CatalogServiceClient();

async function callSearchEntries() {
  // Construct request
  const request = {
    name,
    query,
  };

  // Run request
  const iterable = dataplexClient.searchEntriesAsync(request);
  for await (const response of iterable) {
      console.log(response);
  }
}

callSearchEntries();

PHP

PHP

Antes de testar esta amostra, siga as instruções de configuração do PHP no Guia de início rápido do Knowledge Catalog: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Knowledge Catalog PHP.

Para autenticar no Knowledge Catalog, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.

use Google\ApiCore\ApiException;
use Google\ApiCore\PagedListResponse;
use Google\Cloud\Dataplex\V1\Client\CatalogServiceClient;
use Google\Cloud\Dataplex\V1\SearchEntriesRequest;
use Google\Cloud\Dataplex\V1\SearchEntriesResult;

/**
 * Searches for Entries matching the given query and scope.
 *
 * @param string $formattedName The project to which the request should be attributed in the
 *                              following form: `projects/{project}/locations/global`. Please see
 *                              {@see CatalogServiceClient::locationName()} for help formatting this field.
 * @param string $query         The query against which entries in scope should be matched.
 *                              The query syntax is defined in [Search syntax for Dataplex Universal
 *                              Catalog](https://cloud.google.com/dataplex/docs/search-syntax).
 */
function search_entries_sample(string $formattedName, string $query): void
{
    // Create a client.
    $catalogServiceClient = new CatalogServiceClient();

    // Prepare the request message.
    $request = (new SearchEntriesRequest())
        ->setName($formattedName)
        ->setQuery($query);

    // Call the API and handle any network failures.
    try {
        /** @var PagedListResponse $response */
        $response = $catalogServiceClient->searchEntries($request);

        /** @var SearchEntriesResult $element */
        foreach ($response as $element) {
            printf('Element data: %s' . PHP_EOL, $element->serializeToJsonString());
        }
    } catch (ApiException $ex) {
        printf('Call failed with message: %s' . PHP_EOL, $ex->getMessage());
    }
}

/**
 * Helper to execute the sample.
 *
 * This sample has been automatically generated and should be regarded as a code
 * template only. It will require modifications to work:
 *  - It may require correct/in-range values for request initialization.
 *  - It may require specifying regional endpoints when creating the service client,
 *    please see the apiEndpoint client configuration option for more details.
 */
function callSample(): void
{
    $formattedName = CatalogServiceClient::locationName('[PROJECT]', '[LOCATION]');
    $query = '[QUERY]';

    search_entries_sample($formattedName, $query);
}

Python

Python

Antes de testar esta amostra, siga as instruções de configuração do Python no Guia de início rápido do Knowledge Catalog: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Knowledge Catalog Python.

Para autenticar no Knowledge Catalog, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.

# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
#   client as shown in:
#   https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.cloud import dataplex_v1


def sample_search_entries():
    # Create a client
    client = dataplex_v1.CatalogServiceClient()

    # Initialize request argument(s)
    request = dataplex_v1.SearchEntriesRequest(
        name="name_value",
        query="query_value",
    )

    # Make the request
    page_result = client.search_entries(request=request)

    # Handle the response
    for response in page_result:
        print(response)

Ruby

Ruby

Antes de testar esta amostra, siga as instruções de configuração do Ruby no Guia de início rápido do Knowledge Catalog: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Knowledge Catalog Ruby.

Para autenticar no Knowledge Catalog, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.

require "google/cloud/dataplex/v1"

##
# Snippet for the search_entries call in the CatalogService service
#
# This snippet has been automatically generated and should be regarded as a code
# template only. It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
# client as shown in https://cloud.google.com/ruby/docs/reference.
#
# This is an auto-generated example demonstrating basic usage of
# Google::Cloud::Dataplex::V1::CatalogService::Client#search_entries.
#
def search_entries
  # Create a client object. The client can be reused for multiple calls.
  client = Google::Cloud::Dataplex::V1::CatalogService::Client.new

  # Create a request. To set request fields, pass in keyword arguments.
  request = Google::Cloud::Dataplex::V1::SearchEntriesRequest.new

  # Call the search_entries method.
  result = client.search_entries request

  # The returned object is of type Gapic::PagedEnumerable. You can iterate
  # over elements, and API calls will be issued to fetch pages as needed.
  result.each do |item|
    # Each element is of type ::Google::Cloud::Dataplex::V1::SearchEntriesResult.
    p item
  end
end

REST

Para pesquisar recursos, use o método searchEntries.

Sintaxe de pesquisa somente com palavras-chave

Para pesquisas precisas, crie uma consulta usando uma sintaxe específica, incluindo qualificadores, operadores lógicos e pesquisas de aspectos.

Predicados qualificados

Você pode qualificar um predicado usando um prefixo com uma chave que restringe a correspondência a uma parte específica dos metadados:

  • Um sinal de igual (=) restringe a pesquisa a uma correspondência exata.
  • Dois pontos (:) após a chave corresponde ao predicado em um substring ou token dentro do valor nos resultados da pesquisa.

A tokenização divide o fluxo de texto em uma série de tokens, cada um geralmente correspondente a uma palavra.

As chaves de predicado type, system, location e orgid são compatíveis apenas com o qualificador de correspondência exata (=), não com o qualificador de substring (:). Por exemplo, type=foo ou orgid=number.

A pesquisa de palavras-chave do Knowledge Catalog é compatível com os seguintes qualificadores:

Qualificador Descrição
name:x Corresponde a x como uma substring do ID do recurso.
displayname:x Corresponde x como substring do nome de exibição do recurso.
column:x Corresponde x como uma substring do nome da coluna (ou nome da coluna aninhada) no esquema do recurso.
description:x Corresponde x como um token na descrição do recurso.
label:bar Corresponde a recursos do BigQuery que têm um rótulo (com algum valor) e a chave do rótulo tem bar como substring.
label=bar Corresponde a recursos do BigQuery que têm um rótulo (com algum valor) e a chave do rótulo é igual a bar como uma string.
label:bar:x Corresponde a x como uma substring no valor de um rótulo com a chave bar anexada a um recurso do BigQuery.
label=foo:bar Corresponde a recursos do BigQuery em que a chave é igual a foo e o valor da chave é igual a bar.
label.foo=bar Corresponde a recursos do BigQuery em que a chave é igual a foo e o valor da chave é igual a bar.
label.foo Corresponde a recursos do BigQuery que têm um rótulo cuja chave é igual a foo como uma string.
type=TYPE Corresponde a recursos de um tipo de entrada específico ou ao alias do tipo.
projectid:bar Corresponde a recursos em projetos Google Cloud que correspondem abarcomo uma substring no ID.
parent:x Corresponde a x como uma substring do caminho hierárquico de um recurso. O caminho principal é um fully_qualified_name do recurso principal.
orgid=number Corresponde os recursos em uma organização Google Cloud ao valor exato do ID de number.
system=SYSTEM Corresponde a recursos de um sistema especificado.
location=LOCATION

Corresponde recursos em um local especificado com um nome exato. Por exemplo, location=us-central1 corresponde a recursos hospedados em Iowa.

Os recursos do BigQuery Omni oferecem suporte a esse qualificador usando o nome do local do BigQuery Omni. Por exemplo, location=aws-us-east-1 corresponde a recursos do BigQuery Omni no norte da Virgínia.

createtime

Encontra recursos criados em, antes ou depois de uma determinada data ou hora.

Exemplo:

  • createtime:2019-01-01 corresponde a recursos criados em 01/01/2019.
  • createtime<2019-02 corresponde a recursos criados antes de 2019-02-01T00:00:00.
  • createtime>2019-02 corresponde a recursos criados após 2019-02-01T00:00:00.

Formato do carimbo de data/hora: YYYY-MM-DDThh:mm:ss

Todos os carimbos de data/hora precisam estar em GMT. Fusos horários não são aceitos. Timestamps parciais e separadores de data com hífen (-) e barra (/) são aceitos.

Exemplo:

  • 2010-10-22T05:36:24
  • 2010-10-22T05:36
  • 2010-10-22T05
  • 2010-10-22
  • 2010-10
  • 2010
  • 2010/10/22
updatetime

Encontra recursos que foram atualizados em, antes ou depois de uma determinada data ou hora.

Exemplo:

  • updatetime:2019-01-01 corresponde aos recursos atualizados em 2019-01-01.
  • updatetime<2019-02 corresponde a recursos atualizados antes de 2019-02-01T00:00:00.
  • updatetime>2019-02 corresponde a recursos atualizados após 2019-02-01T00:00:00.

Formato do carimbo de data/hora: YYYY-MM-DDThh:mm:ss

Todos os carimbos de data/hora precisam estar em GMT. Fusos horários não são aceitos. Timestamps parciais e separadores de data com hífen (-) e barra (/) são aceitos.

Exemplo:

  • 2010-10-22T05:36:24
  • 2010-10-22T05:36
  • 2010-10-22T05
  • 2010-10-22
  • 2010-10
  • 2010
  • 2010/10/22
fully_qualified_name:x Corresponde a x como uma substring de fully_qualified_name.
fully_qualified_name=x Corresponde a x como fully_qualified_name.

Para pesquisar entradas com base nos aspectos anexados, use a seguinte sintaxe de consulta.

Qualificador Descrição
aspect:x Corresponde a x como uma substring do caminho completo para o tipo de aspecto de um aspecto anexado à entrada, no formato projectid.location.ASPECT_TYPE_ID
aspect=x Corresponde a x como o caminho completo para o tipo de aspecto de um aspecto anexado à entrada, no formato projectid.location.ASPECT_TYPE_ID.
aspect:xOPERATORvalue

Pesquisa valores de campo de aspecto. Corresponde a x como uma substring do caminho completo para o tipo de aspecto e o nome do campo de um aspecto anexado à entrada, no formato projectid.location.ASPECT_TYPE_ID.FIELD_NAME.

A lista de operadores compatíveis depende do tipo de campo no aspecto, da seguinte forma:

  • String: = (correspondência exata) e : (substring)
  • Todos os tipos de números: =, :, <, >, <=, >=, =>, =<
  • Enum: =
  • Data e hora: igual aos números, mas os valores a serem comparados são tratados como datas e horas em vez de números.
  • Booleano: =

Somente campos de nível superior do aspecto podem ser pesquisados.

Por exemplo, todas as consultas a seguir correspondem a entradas em que o valor do campo is-enrolled no aspecto employee-info é true. Outras entradas que correspondem à substring também são retornadas.

  • aspect:example-project.us-central1.employee-info.is-enrolled=true
  • aspect:example-project.us-central1.employee=true
  • aspect:employee=true

Operadores lógicos

Uma consulta pode consistir em vários predicados vinculados com operadores lógicos AND, OR ou NOT.

  • Se você não especificar um operador, o AND lógico ficará implícito. Por exemplo, foo bar retorna recursos que correspondem ao predicado foo e ao predicado bar.
  • Negue um predicado com um prefixo - (hífen) ou NOT. Por exemplo, -name:foo retorna recursos com nomes que não correspondem ao predicado foo.

Na pesquisa somente por palavras-chave, os operadores lógicos não diferenciam maiúsculas de minúsculas.

Sintaxe abreviada

Para usar a sintaxe abreviada nas consultas, use | (barra vertical) para operadores OR e , (vírgula) para operadores AND. A sintaxe abreviada funciona para os predicados qualificados, exceto label.

Os exemplos a seguir mostram como usar a sintaxe abreviada com a pesquisa somente por palavras-chave.

  • Pesquisar entradas em um de vários projetos usando o operador OR

    projectid:(id1|id2|id3|id4)
    

    A mesma pesquisa sem usar a sintaxe abreviada tem esta aparência:

    projectid:id1 OR projectid:id2 OR projectid:id3 OR projectid:id4
    
  • Para pesquisar entradas com nomes de coluna correspondentes:

    • AND: column:(name1,name2,name3)
    • OU: column:(name1|name2|name3)

A seguir