Pode atualizar os dados estruturados do esquema e os dados não estruturados com metadados que suportam um esquema.
Pode atualizar o esquema na Google Cloud consola ou através do método da API
schemas.patch
.
Para atualizar o esquema, pode adicionar novos campos, alterar as anotações indexáveis, pesquisáveis e
recuperáveis de um campo ou marcar um campo como uma propriedade chave, como
title
, uri
e description
.
Atualize o seu esquema
Pode atualizar o seu esquema na Google Cloud consola ou através da API.
Consola
Para atualizar um esquema na Google Cloud consola, siga estes passos:
Reveja a secção Requisitos e limitações para verificar se a atualização do esquema é válida.
Se estiver a atualizar anotações de campos (definindo campos como indexáveis, recuperáveis, dinamicamente segmentáveis, pesquisáveis ou preenchíveis), reveja o artigo Configurar definições de campos para conhecer as limitações e os requisitos de cada tipo de anotação.
Verifique se concluiu o carregamento de dados. Caso contrário, o esquema pode ainda não estar disponível para edição.
Na Google Cloud consola, aceda à página Gemini Enterprise.
No menu de navegação, clique em Armazenamentos de dados.
Na coluna Nome, clique no arquivo de dados com o esquema que quer atualizar.
Clique no separador Esquema para ver o esquema dos seus dados.
Este separador pode estar vazio se for a primeira vez que edita os campos.
Clique no botão Editar.
Atualize o seu esquema:
Mapeie propriedades principais: na coluna Propriedades principais do seu esquema, selecione uma propriedade principal para mapear um campo. Por exemplo, se um campo denominado
details
contiver sempre a descrição de um documento, mapeie esse campo para a propriedade chave Description.Atualizar número de dimensões (avançado): pode atualizar esta definição se estiver a usar incorporações de vetores personalizadas com o Gemini Enterprise. Consulte a secção Avançado: use incorporações personalizadas.
Atualizar anotações de campos: para atualizar as anotações de um campo, selecione ou desmarque a definição de anotação de um campo. As anotações disponíveis são Retrievable, Indexable, Dynamic Facetable, Searchable e Completable. Algumas definições de campos têm limitações. Consulte o artigo Configure as definições dos campos para ver descrições e requisitos para cada tipo de anotação.
Adicione um novo campo: adicionar novos campos ao seu esquema antes de importar novos documentos com esses campos pode reduzir o tempo que o Gemini Enterprise demora a reindexar os seus dados após a importação.
Clique em Adicionar novos campos para expandir essa secção.
Clique em add_box Adicionar nó e especifique as definições do novo campo.
Para indicar uma matriz, defina Array como Yes. Por exemplo, para adicionar uma matriz de strings, defina type como
string
e Array comoYes
.
Clique em Guardar para aplicar as alterações ao esquema.
A alteração do esquema aciona a reindexação. Para grandes armazenamentos de dados, a reindexação pode demorar horas.
REST
Para usar a API para atualizar o seu esquema, siga estes passos:
Reveja as secções Requisitos e limitações e Exemplos de limitações (apenas REST) para verificar se as alterações ao esquema são válidas.
Para atualizar o esquema de lojas de dados com dados não estruturados com metadados, avance para o passo 5 para chamar o método
schema.patch
.Se estiver a atualizar anotações de campos (definindo campos como indexáveis, recuperáveis, dinamicamente segmentáveis ou pesquisáveis), reveja o artigo Configurar definições de campos para conhecer as limitações e os requisitos de cada tipo de anotação.
Se estiver a editar um esquema detetado automaticamente, certifique-se de que concluiu a carregamento de dados. Caso contrário, o esquema pode ainda não estar disponível para edição.
Encontre o ID da loja de dados. Se já tiver o ID da loja de dados, avance para o passo seguinte.
Na Google Cloud consola, aceda à página Gemini Enterprise e, no menu de navegação, clique em Armazenamentos de dados.
Clique no nome do arquivo de dados.
Na página Dados da sua loja de dados, obtenha o ID da loja de dados.
Use o método da API schemas.patch para fornecer o novo esquema JSON como um objeto JSON.
curl -X PATCH \ -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/schemas/default_schema" \ -d '{ "structSchema": JSON_SCHEMA_OBJECT }'
Substitua o seguinte:
PROJECT_ID
: o ID do seu projeto.DATA_STORE_ID
: o ID do armazenamento de dados.JSON_SCHEMA_OBJECT
: o novo esquema JSON como um objeto JSON. Por exemplo:{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "title": { "type": "string", "keyPropertyMapping": "title" }, "categories": { "type": "array", "items": { "type": "string", "keyPropertyMapping": "category" } }, "uri": { "type": "string", "keyPropertyMapping": "uri" } } }
Opcional: reveja o esquema seguindo o procedimento Veja uma definição de esquema.
C#
Antes de experimentar este exemplo, siga as C#instruções de configuração no início rápido do Gemini Enterprise usando bibliotecas cliente. Para mais informações, consulte a documentação de referência da API C#Gemini Enterprise.
Para se autenticar no Gemini Enterprise, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Go
Antes de experimentar este exemplo, siga as Goinstruções de configuração no início rápido do Gemini Enterprise usando bibliotecas cliente. Para mais informações, consulte a documentação de referência da API GoGemini Enterprise.
Para se autenticar no Gemini Enterprise, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Java
Antes de experimentar este exemplo, siga as Javainstruções de configuração no início rápido do Gemini Enterprise usando bibliotecas cliente. Para mais informações, consulte a documentação de referência da API JavaGemini Enterprise.
Para se autenticar no Gemini Enterprise, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Python
Antes de experimentar este exemplo, siga as Pythoninstruções de configuração no início rápido do Gemini Enterprise usando bibliotecas cliente. Para mais informações, consulte a documentação de referência da API PythonGemini Enterprise.
Para se autenticar no Gemini Enterprise, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Ruby
Antes de experimentar este exemplo, siga as Rubyinstruções de configuração no início rápido do Gemini Enterprise usando bibliotecas cliente. Para mais informações, consulte a documentação de referência da API RubyGemini Enterprise.
Para se autenticar no Gemini Enterprise, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Requisitos e limitações
Quando atualizar um esquema, certifique-se de que o novo esquema é retrocompatível com o esquema que está a atualizar. Para atualizar um esquema com um novo esquema que não seja retrocompatível, tem de eliminar todos os documentos no repositório de dados, eliminar o esquema e criar um novo esquema.
A atualização de um esquema aciona a reindexação de todos os documentos. A reindexação de um grande repositório de dados pode demorar horas ou dias.
As atualizações de esquemas não suportam o seguinte:
- Alterar um tipo de campo. Uma atualização do esquema não suporta a alteração do tipo do campo. Por exemplo, não é possível alterar um campo mapeado para
integer
parastring
. - Remover um campo. Depois de definido, não é possível remover um campo. Pode continuar a adicionar novos campos, mas não pode remover um campo existente.
Exemplos de limitações (apenas REST)
Esta secção mostra exemplos de tipos de atualizações de esquemas válidos e inválidos. Estes exemplos usam o seguinte esquema JSON de exemplo:
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"title": {
"type": "string"
},
"description": {
"type": "string",
"keyPropertyMapping": "description"
},
"categories": {
"type": "array",
"items": {
"type": "string",
"keyPropertyMapping": "category"
}
}
}
}
Exemplos de atualizações suportadas
São suportadas as seguintes atualizações ao esquema de exemplo.
Adicionar um campo. Neste exemplo, o campo
properties.uri
foi adicionado ao esquema.{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "title": { "type": "string" }, "description": { "type": "string", "keyPropertyMapping": "description" }, "uri": { // Added field. This is supported. "type": "string", "keyPropertyMapping": "uri" }, "categories": { "type": "array", "items": { "type": "string", "keyPropertyMapping": "category" } } } }
Adicionar ou remover anotações de propriedades principais para
title
,description
ouuri
. Neste exemplo,keyPropertyMapping
foi adicionado ao campotitle
.{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "title": { "type": "string", "keyPropertyMapping": "title" // Added "keyPropertyMapping". This is supported. }, "description": { "type": "string", "keyPropertyMapping": "description" }, "categories": { "type": "array", "items": { "type": "string", "keyPropertyMapping": "category" } } } }
Exemplos de atualizações de esquemas inválidas
As seguintes atualizações ao esquema de exemplo não são suportadas.
Alterar um tipo de campo. Neste exemplo, o tipo do campo
title
foi alterado de string para número. Esta opção não é suportada.{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "title": { "type": "number" // Changed from string. Not allowed. }, "description": { "type": "string", "keyPropertyMapping": "description" }, "categories": { "type": "array", "items": { "type": "string", "keyPropertyMapping": "category" } } } }
Remover um campo. Neste exemplo, o campo
title
foi removido. Esta opção não é suportada.{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { // "title" is removed. Not allowed. "description": { "type": "string", "keyPropertyMapping": "description" }, "uri": { "type": "string", "keyPropertyMapping": "uri" }, "categories": { "type": "array", "items": { "type": "string", "keyPropertyMapping": "category" } } } }
O que se segue?
- Veja a definição do esquema para dados estruturados
- Elimine um esquema de dados estruturados
- Pré-visualize os resultados da pesquisa