Usar Pesquisa de Texto Completo em Arquivos no Object Storage
O pacote PL/SQL DBMS_CLOUD permite que você crie um índice de texto nos arquivos de armazenamento de objetos, o que permite pesquisar o texto e usar curingas com sua pesquisa.
- Sobre a Pesquisa de Texto Completo em Arquivos no Serviço Object Storage
Você pode criar um índice de texto em arquivos no serviço Object Storage. Um índice de texto permite que você execute uma pesquisa baseada em palavras em conjuntos de dados muito grandes no armazenamento de objetos. - Criar um Índice de Texto em Arquivos do Object Storage
UseDBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
para criar um índice de texto em arquivos no armazenamento de objetos. - Eliminar um Índice nos Arquivos de Armazenamento na Nuvem
Use o procedimentoDBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEX
para eliminar um índice de texto nos arquivos de armazenamento de objetos. - Tabela de Referência do Índice de Texto
Uma tabela local é criada no banco de dados com um sufixo padrãoINDEX_NAME$TXTIDX
. Essa tabela é criada internamente quando você executaDBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
. - Monitorar Criação do Índice de Texto
Quando você executaDBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
, a operação de criação do índice de texto é registrada na viewALL_SCHEDULER_JOB_RUN_DETAILS
.
Tópico principal: Consultas de Pesquisa de Texto Completo
Sobre a Pesquisa de Texto Completo em Arquivos no Object Storage
O DBMS_CLOUD
fornece maneiras rápidas e eficientes de gerenciar dados no armazenamento de objetos. As APIs DBMS_CLOUD
permitem criar, copiar, fazer download, excluir e percorrer arquivos presentes no armazenamento de objetos. Ao definir tabelas externas, você pode executar consultas SQL em dados armazenados no armazenamento de objetos (ou com tabelas externas particionadas híbridas, entre dados no banco de dados e no armazenamento de objetos). Quando você usa DBMS_CLOUD
para definir um índice de texto, isso permite pesquisar texto em seus dados e usar curingas.
O suporte do Autonomous Database para pesquisa baseada em palavras funciona para formatos de dados comumente usados, por exemplo, CSV ou JSON e com documentos formatados (binário), por exemplo, formatos PDF e DOC (MS Word). Você pode configurar uma taxa de atualização que indique a frequência em minutos na qual o índice é atualizado para qualquer novo upload ou exclusão.
Uma tabela local com o sufixo padrão INDEX_NAME$TXTIDX
é criada quando você cria um índice no armazenamento de objetos e pode utilizar a tabela para executar uma pesquisa usando a palavra-chave CONTAINS
.
Consulte Indexando com o Oracle Text para obter mais informações.
Tópico principal: Usar Pesquisa de Texto Completo em Arquivos no Object Storage
Criar um Índice de Texto nos Arquivos do Object Storage
Use DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
para criar um índice de texto em arquivos no armazenamento de objetos.
Documentos formatados (binário) são suportados quando você especifica a opção binary_files
format
com DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
.
Você pode incluir uma lista de palavras de parada ao especificar a opção stop_words
format
com DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
.
Consulte Indexando com o Oracle Text para obter mais informações sobre palavras de interrupção do Oracle Text e trabalhando com arquivos binários.
Tópico principal: Usar Pesquisa de Texto Completo em Arquivos no Object Storage
Eliminar um Índice nos Arquivos do Cloud Storage
Use o procedimento DBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEX
para eliminar um índice de texto em arquivos de armazenamento de objetos.
Execute o procedimento DBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEX
para eliminar um índice de texto em arquivos no armazenamento de objetos.
BEGIN
DBMS_CLOUD.DROP_EXTERNAL_TEXT_INDEX
(
index_name => 'EMP',
);
END;
/
Este exemplo elimina o índice de texto EMP
.
Consulte DROP_EXTERNAL_TEXT_INDEX Procedimento para obter mais informações.
Tópico principal: Usar Pesquisa de Texto Completo em Arquivos no Object Storage
Tabela de Referência do Índice de Texto
Uma tabela local é criada no seu banco de dados com um sufixo padrão INDEX_NAME$TXTIDX
. Essa tabela é criada internamente quando você executa DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
.
Você pode consultar a tabela INDEX_NAME$TXTIDX
para procurar uma string usando a palavra-chave CONTAINS
. Por exemplo, quando você chama o procedimento DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
do valor INDEX_NAME
como EMP
, isso cria a tabela de referência de texto EMP$TXTIDX
.
-
object_name
: é o nome do arquivo no armazenamento de objetos que contém a string de texto pesquisada. -
object_path
: é o bucket de armazenamento de objetos ou o URI da pasta que contém o arquivo de armazenamento de objetos. -
mtime
: é o timestamp modificado pela última vez do arquivo de armazenamento de objetos. Este é o momento em que o arquivo foi acessado pela última vez porDBMS_CLOUD
.
SELECT object_path, object_name FROM EMP$TXTIDX WHERE CONTAINS(OBJECT_NAME, 'king') > 0;
OBJECT_PATH OBJECT_NAME
------------------------------------------------------------------------------------------ ------------------------------------
https://objectstorage.us-phoenix-1.oraclecloud.com/n/example1/b/adbs_data_share/o/ts_data/ data_2_20221026T195313585601Z.json
Essa consulta retorna os nomes de arquivo e o URI de localização no armazenamento de objetos que contém a string de texto king
, em letras maiúsculas ou minúsculas.
SELECT object_name, mtime FROM EMP$TXTIDX;
OBJECT_NAME MTIME
----------------------------- -------------------------------------
data_1_20220531T165402Z.json 31-MAY-22 04.54.02.979000 PM +00:00
data_1_20220531T165427Z.json 31-MAY-22 04.54.27.997000 PM +00:00
Essa consulta retorna o nome do arquivo e o timestamp modificado pela última vez dos arquivos de objeto nos quais o índice EMP
é criado.
Tópico principal: Usar Pesquisa de Texto Completo em Arquivos no Object Storage
Monitorar Criação de Índice de Texto
Quando você executa DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
, a operação de criação de índice de texto é registrada na view ALL_SCHEDULER_JOB_RUN_DETAILS
.
Você pode consultar a view ALL_SCHEDULER_JOB_RUN_DETAILS
para obter o status e qualquer erro reportado pelo job de criação de índice.
O nome do job DBMS_SCHEDULER
é derivado do parâmetro INDEX_NAME
especificado quando você chama DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
.
Para consultar a view ALL_SCHEDULER_JOB_RUN_DETAILS
, você deve estar conectado como o usuário ADMIN
ou ter o privilégio READ
na view ALL_SCHEDULER_JOB_RUN_DETAILS
.
Por exemplo, a seguinte instrução SELECT
com uma cláusula WHERE
em job_name
mostra os detalhes da execução do job:
SELECT status, additional_info
FROM all_scheduler_job_run_details WHERE LOWER(job_name) = LOWER('index_name$JOB');
Você também pode consultar a existência de um job do scheduler de criação de índice.
SELECT status
FROM all_scheduler_jobs where LOWER(job_name) = LOWER('index_name$JOB');
Consulte CREATE_EXTERNAL_TEXT_INDEX Procedimento para obter mais informações.
Tópico principal: Usar Pesquisa de Texto Completo em Arquivos no Object Storage