Usar Pesquisa de Texto Completo em Arquivos no Serviço 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 Serviço Object Storage
UseDBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
para criar um índice de texto em arquivos do serviço Object Storage. - Eliminar um Índice nos Arquivos do Cloud Storage
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 seu banco de dados com um sufixo padrãoINDEX_NAME$TXTIDX
. Esta tabela é criada internamente quando você executa oDBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
. - Monitorar Criação de Índice de Texto
Quando você executaDBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
, a operação de criação de índice de texto é registrada na viewALL_SCHEDULER_JOB_RUN_DETAILS
.
Tópico pai: Consultas de Pesquisa de Texto Completo
Sobre a Pesquisa de Texto Completo em Arquivos no Serviço Object Storage
O DBMS_CLOUD
fornece maneiras rápidas e eficientes de gerenciar dados no armazenamento de objetos. As APIs DBMS_CLOUD
permitem que você crie, copie, faça download, exclua e percorra arquivos presentes no armazenamento de objetos. Ao definir tabelas externas, você pode executar consultas SQL em dados armazenados em seu armazenamento de objetos (ou com tabelas externas particionadas híbridas, entre dados em seu banco de dados e no armazenamento de objetos). Quando você usa DBMS_CLOUD
para definir um índice de texto, isso permite que você pesquise texto em seus dados e use 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 quaisquer novos uploads ou exclusões.
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 Serviço 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ários) são suportados quando você especifica a opção binary_files
format
com DBMS_CLOUD.CREATE_EXTERNAL_TEXT_INDEX
.
É possível incluir uma lista de palavras interrompidas quando você especifica 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 como trabalhar com arquivos binários.
Tópico principal: Usar Pesquisa de Texto Completo em Arquivos no Serviço Object Storage
Eliminar um Índice nos Arquivos de Armazenamento na Nuvem
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 Procedures para obter mais informações.
Tópico principal: Usar Pesquisa de Texto Completo em Arquivos no Serviço 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
. Esta tabela é criada internamente quando você executa o 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 o EMP$TXTIDX
da tabela de referência de texto.
-
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 último timestamp modificado do arquivo de armazenamento de objetos. Este é o horário 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 local 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
Esta consulta retorna o nome do arquivo e o timestamp da última modificação dos arquivos de objeto nos quais o índice EMP
é criado.
Tópico principal: Usar Pesquisa de Texto Completo em Arquivos no Serviço Object Storage
Criação do Índice de Texto do Monitor
Quando você executa o 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 Procedures para obter mais informações.
Tópico principal: Usar Pesquisa de Texto Completo em Arquivos no Serviço Object Storage