Pesquisa de texto completo sqlite

Pesquisa de texto completo sqlite
No banco de dados, o componente da tabela virtual do FTS5 é usado para fazer pesquisas abrangentes. Uma tabela virtual é um plug -in personalizável do SQLite. Uma tabela virtual é semelhante a uma tabela regular. A distinção entre uma tabela virtual e uma tabela comum seria de onde os dados vêm. O SQLite consulta o esquema do banco de dados para obter dados enquanto processa uma tabela regular. Sempre que você visita uma tabela virtual, o SQLite, por outro lado, chama o código do programa para recuperar o conteúdo. Certas atividades, como obter dados de vários conjuntos de dados, podem ser tratados por código personalizado com lógica específica.

Vamos começar com este artigo iniciando o banco de dados SQLite- biblioteca C do SQL em seu sistema. Para isso, experimente a palavra -chave "sqlite3" como uma instrução no shell e você está pronto para ir. O terminal do banco de dados SQLite foi lançado. Nós tentamos o .Instruções de tabelas em sua área de consulta para listar todas as tabelas já existentes do banco de dados. Infelizmente, não temos tabelas no banco de dados agora. Assim, precisamos criar uma tabela para realizar uma pesquisa de texto completo.

Vamos criar um novo teste de tabela no banco de dados SQLite usando a consulta Create Table do banco de dados. Esta tabela conterá a coluna ID do tipo inteiro e o título do tipo de texto. Ambas as colunas não devem ser nulas de acordo com a consulta de tabela de criação.

Criar teste de tabela (Id int Primary Key, Título Texto não NULL);

Após a criação de uma tabela de teste, precisamos colocar alguns valores nela. Temos adicionado os valores para as colunas ID e o título, como mostrado. Depois disso, tentamos a instrução "Selecionar" com o personagem "*" para buscar todos os registros recém -inseridos de uma tabela de teste.

Inserir no teste (id, título) valores (1, 'maravilhas');
Inserir no teste (ID, título) valores (2, 'malefiente');
Inserir no teste (ID, título) valores (3, 'Doutor Strange');
Inserir no teste (id, título) valores (4, 'Lucky');
Inserir no teste (id, título) valores (5, 'rush'); Selecione * no teste;

Vamos pesquisar a pesquisa de texto completo na coluna do título da tabela de teste, onde o registro corresponde a "FTS5".

Selecione * no teste onde a correspondência do título 'FTS5';

Vamos avançar para realizar uma pesquisa de texto completo na tabela. A pesquisa de texto completo também pode ser usado nas tabelas virtuais. Assim, precisamos criar uma nova tabela virtual. Para isso, estamos usando o comando CREATE VIRTUAL TABLE JUNHO COM O NOME. Seguido pela palavra -chave usando o FTS5 e os nomes das colunas nos suportes. Essas colunas não contêm nenhum tipo de dados enquanto a criação de uma tabela como FTS5 foi aplicada.

Criar dados da tabela virtual usando FTS5 (título, informações);

Depois de criar a tabela virtual, precisamos inserir registros nas duas colunas "título" e "informações" de uma tabela "dados". Então, adicionamos um total de 5 registros nas duas colunas "título" e "informações" de uma tabela de dados. Você pode ver que as colunas contêm valores de texto contendo pequenas e grandes quantidades de dados dentro.

Inserir em dados (título, info) valores ('maravilhas', 'Este filme tem cerca de 7 amigos presos na terra das maravilhas.

Ganhou um total de 230 milhões de dólares);

Inserir em dados (título, info) valores ('maleficient', 'este filme é sobre fantasia, magia e romance famoso sobre jovens. Total ganhou 300 milhões de dólares);
Inserir em dados (título, info) valores ('Início', 'Este filme é sobre mudar seu futuro fazendo para sonhos. Ganhou um total de 500 milhões de dólares);
Inserir em dados (título, info) valores ('2020', 'Este filme retrata que o mundo chegará ao seu fim em 2020 depois de atingir um enorme tsunami. Ganhou um total de 600 milhões de dólares);
Inserir em dados (título, info) valores ('doutor estranho', 'é sobre magia e seu uso dele para curar. Ganhou um total de 800 milhões de dólares);

Depois de adicionar os registros, estamos buscando todos os seus dados usando a instrução SELECT com o caractere '*' na consulta seguido pelo nome de dados de uma tabela. Ele exibiu todos os 5 registros.

Vamos procurar o texto completo nas colunas de dados de uma tabela. Para isso, estamos usando a instrução SELECT com a string correspondente 'fts5' na consulta. A cláusula WHERE contém a condição de que a tabela de dados deve corresponder à string 'fts5' conforme a palavra -chave correspondente. Você também pode substituir a correspondência pelo operador "=". Acontece que não há string 'fts5' na tabela.

Selecione * FROM dados onde os dados correspondem ao 'FTS5';
Selecione * FROM dados onde dados = 'fts5';

Então, estamos adicionando um novo registro na tabela que contém o padrão 'fts5' em seu conteúdo. Tentamos a inserção em instrução mais uma vez até agora. Depois de exibir os dados de uma tabela dados mais uma vez, vimos que o registro recém -inserido também foi exibido.

Vamos aplicar a pesquisa de texto completo na tabela de dados usando a instrução SELECT seguida pela correspondência de palavras-chave e pelo padrão da string 'fts5' para exibir os únicos registros que contêm o padrão específico. Ele exibiu um único registro em nossa tela. A mesma consulta foi executada com o operador "=" em vez da palavra -chave correspondente e exibiu a mesma saída.

Selecione * FROM dados onde os dados correspondem ao 'FTS5';
Selecione * FROM dados onde dados = 'fts5';
Selecione * FROM DATA ('FTS5');

Vamos exibir os registros da tabela na ordem mais a menos relevante dos registros inseridos. Para isso, usaremos a opção "classificação" na consulta. Então, estamos usando a pesquisa de texto completo para pesquisar o texto 'maravilhas' a partir dos dados da tabela por meio da palavra-chave MACK e o pedido por cláusulas após a opção "classificação". Ele exibiu um único registro da tabela.

Selecione * FROM dados em que os dados correspondem à ordem 'maravilhas' por classificação;

Outra maneira de realizar uma pesquisa de texto completo é usar o padrão dentro dos colchetes após o nome da tabela na instrução Selecionar.

Selecione * FROM DATA ('MAGIC');

Você também pode usar a pesquisa de texto completo para pesquisar os valores de padrões de prefixo do conteúdo da tabela. Para usar prefixos, você precisa adicionar os dois primeiros a três caracteres seguidos pelo personagem "*". Este valor de prefixo pode ser usado nos colchetes da instrução SELECT. Agora, o uso de "Ro*" está exibindo o único registro do filme Maleficent, cuja descrição Informações contém o prefixo "Ro" para "Romance".

Selecione * FROM DATA ('RO *');

Você também pode restringir a busca de um padrão para o outro usando o operador Not. Como usamos o texto, não o texto, ele exibiu dois discos para o padrão mágico.

Selecione * FROM dados em que os dados correspondem a 'Magic Not Text';

Conclusão

Este guia é sobre o uso de pesquisa de texto completo no banco de dados SQLite usado no Ubuntu 20.04. Usando o FTS5, podemos procurar um padrão específico junto com algumas condições. Este artigo detalhado ajudará você a pesquisar texto no SQLite.