Adicionando Metadados aos Arquivos do Serviço Object Storage para Filtragem de Pesquisa
Você pode adicionar metadados aos arquivos do Object Storage antes de sincronizá-los com um armazenamento de vetores. Os metadados ajudam a melhorar a recuperação, permitindo que as pesquisas semânticas e híbridas filtrem os resultados por atributos relevantes.
Por exemplo, você pode adicionar metadados, como ano de publicação, título, tópico, departamento, área de produto ou tipo de documento. Após a sincronização dos arquivos, esses campos de metadados podem ser usados para restringir os resultados da pesquisa a um escopo de conteúdo específico.
Os Metadados são opcionais. No entanto, se você quiser que os metadados estejam disponíveis para filtragem de pesquisa, adicione ou atualize os metadados antes de executar a sincronização de dados. Os metadados adicionados após uma sincronização não são incluídos nessa sincronização, a menos que você execute a sincronização de dados novamente.
Este tópico se aplica a armazenamentos de vetores que sincronizam dados não estruturados do serviço Object Storage.
Adicione ou atualize metadados antes de executar a sincronização de dados. Os metadados adicionados após uma sincronização não são incluídos nessa sincronização.
Como Funcionam os Metadados
Os metadados são definidos como pares chave-valor. Para usar metadados com arquivos do serviço Object Storage, primeiro defina os campos de metadados em um arquivo de esquema. Em seguida, você associa arquivos no bucket a valores de metadados.
Para todos os métodos de metadados do serviço Object Storage, crie um arquivo de esquema de metadados chamado _metadata_schema.json no nível raiz do bucket do serviço Object Storage. O esquema define as chaves de metadados que o serviço pode esperar e o tipo de valor de cada chave.
Se o arquivo _metadata_schema.json não existir, os metadados não serão calculados para arquivos no bucket.
Cada campo de metadados tem um nome e um tipo. Os tipos de metadados suportados são:
integerstringlist_of_stringdouble
Visão Geral do Workflow
Use o seguinte workflow para preparar metadados antes de sincronizar arquivos com um armazenamento de vetores:
- Em um editor de texto, crie um arquivo de esquema de metadados chamado
_metadata_schema.json. - Defina os campos de metadados e os tipos de valor no formato JSON.
- Faça upload do
_metadata_schema.jsonpara o nível raiz do bucket do Object Storage que contém os arquivos a serem sincronizados. - Selecione como associar valores de metadados a arquivos:
- Aplicar metadados comuns a todos os arquivos do bucket.
- Defina metadados para vários arquivos em um arquivo JSON.
- Defina metadados em um arquivo JSON separado para cada arquivo de dados.
- Adicione metadados usando propriedades de metadados do Object Storage.
- Faça upload dos arquivos de metadados para o local correto no bucket do Object Storage.
- Execute a sincronização de dados para o armazenamento de vetores.
Exemplo de Esquema de Metadados
Crie um arquivo de esquema de metadados chamado _metadata_schema.json e salve-o no nível raiz do bucket do Object Storage.
{
"metadataSchema": [
{
"name": "publication_year",
"type": "integer"
},
{
"name": "title",
"type": "string"
},
{
"name": "topic",
"type": "list_of_string"
},
{
"name": "rating",
"type": "double"
}
]
}
Os nomes de metadados que você usa nos arquivos de metadados devem corresponder aos nomes definidos no esquema.
Métodos de Metadados para Arquivos do Serviço Object Storage
A tabela a seguir descreve os métodos suportados para adicionar metadados a arquivos no Object Storage, incluindo onde criar cada arquivo ou cabeçalho de metadados e quando usar cada método.
| Método | Nome e localização do arquivo | Quando usar |
|---|---|---|
| Definir o esquema de metadados | Crie _metadata_schema.json no nível raiz do bucket do Object Storage. |
Obrigatório para todos os métodos de arquivo de metadados do Object Storage. O esquema define as chaves de metadados e os tipos de valor suportados. |
| Aplicar metadados comuns a todos os arquivos em um bucket | Crie _common.metadata.json no nível raiz do bucket do Object Storage. |
Use quando os mesmos metadados se aplicarem a todos os arquivos do bucket. Este método evita a duplicação de metadados entre arquivos. |
| Definir metadados para vários arquivos em um arquivo JSON | Crie _all.metadata.json no nível raiz do bucket do Object Storage. |
Use quando tiver muitos arquivos e preferir gerenciar metadados para todos os arquivos em um arquivo JSON, em vez de criar um arquivo de metadados por arquivo. |
| Definir metadados para um arquivo | Crie <file-name>.metadata.json no mesmo nível do arquivo de dados correspondente. O valor <file-name>deve corresponder ao nome do arquivo de dados. |
Use quando os metadados forem diferentes por arquivo e você tiver um pequeno número de arquivos ou quando automatizar a criação de arquivos de metadados. |
| Adicionar metadados como cabeçalhos do Object Storage | Adicione metadados usando as propriedades de metadados do Object Storage de cada arquivo. | Use somente quando tiver um pequeno número de propriedades de metadados. Os arquivos de metadados JSON são recomendados porque são mais fáceis de atualizar e gerenciar. |
Exemplo de Localização do Arquivo de Metadados
O exemplo a seguir mostra onde salvar arquivos de metadados em um bucket do Object Storage.
bucket_root/
_metadata_schema.json
_common.metadata.json
_all.metadata.json
file_0.pdf
file_0.pdf.metadata.json
folder_1/
file_1.pdf
file_1.pdf.metadata.json
folder_2/
file_2.pdf
file_2.pdf.metadata.json
Para metadados específicos do arquivo, o arquivo de metadados deve ser salvo no mesmo nível do arquivo de dados correspondente.
Por exemplo, se o arquivo de dados for salvo como:
folder_1/file_1.pdf
o arquivo de metadados deve ser salvo como:
folder_1/file_1.pdf.metadata.json
Exemplos de Arquivo JSON de Metadados
Metadados Comuns para Todos os Arquivos
Crie _common.metadata.json no nível raiz do bucket para aplicar os mesmos metadados a todos os arquivos do bucket.
Exemplo:
{
"metadataAttributes": {
"publication_year": 2020,
"topic": [
"cooking",
"health",
"gardening"
],
"rating": 3.3
}
}
Metadados para Vários Arquivos
Crie _all.metadata.json no nível raiz do bucket para definir metadados para vários arquivos em um arquivo JSON.
Exemplo:
{
"folder_1/file_1.pdf": {
"metadataAttributes": {
"publication_year": 2020,
"title": "Healthy Cooking Guide",
"topic": [
"cooking",
"health"
],
"rating": 4.5
}
},
"folder_2/file_2.pdf": {
"metadataAttributes": {
"publication_year": 2022,
"title": "Gardening Basics",
"topic": [
"gardening"
],
"rating": 4.0
}
}
}
Metadados para um Arquivo
Crie <file-name>.metadata.json no mesmo nível do arquivo de dados correspondente.
Por exemplo, para definir metadados para file_1.pdf, crie um arquivo chamado file_1.pdf.metadata.json.
Exemplo:
{
"metadataAttributes": {
"publication_year": 2020,
"title": "Healthy Cooking Guide",
"topic": [
"cooking",
"health"
],
"rating": 4.5
}
}
Limites de Metadados
Os limites a seguir se aplicam aos metadados usados para filtragem de pesquisa.
| Descrição | Limite |
|---|---|
Número máximo de entradas em _all.metadata.json |
10.000 |
| Número máximo de campos de metadados que podem ser especificados para cada arquivo | 20 |
Número máximo de itens em um tipo list_of_string |
10 |
Comprimento máximo de cada item em um tipo list_of_string |
50 caracteres |
| Tamanho máximo de uma chave de metadados | 25 caracteres |
| Tamanho máximo de um valor de metadados | 50 caracteres |
Usando Metadados com o Data Sync
Adicione o esquema de metadados e os arquivos de metadados antes de sincronizar dados com o armazenamento de vetores.
Depois que os arquivos são sincronizados, os metadados ficam disponíveis para filtragem de pesquisa. Se você adicionar ou alterar metadados após a sincronização, execute a sincronização de dados novamente para que os metadados atualizados sejam incluídos no armazenamento de vetores.
Para sincronizar arquivos do serviço Object Storage, consulte Sincronizar Dados com um Vector Store.