Para entender o conceito de pesquisa de texto completo, você deve lembrar o conhecimento da pesquisa de padrões por meio de palavra-chave semelhante. Então, vamos supor uma tabela 'pessoa' no banco de dados 'teste' com os seguintes registros.
>> selecione * da pessoa;Suponhamos que você queira buscar os registros desta tabela, onde a coluna 'nome' tem um personagem 'i' em qualquer um de seus valores. Experimente a consulta selecionada abaixo enquanto usa a cláusula semelhante na concha de comando. A partir da saída abaixo, você pode ver que temos apenas 5 registros para esse personagem em particular 'i' na coluna 'nome'.
>> Selecione * da pessoa em que o nome como '%i%';Uso do TVSector:
Às vezes, não é de utilidade para usar a palavra -chave semelhante para fazer uma pesquisa rápida de padrões, embora a palavra esteja lá. Talvez você esteja pensando em usar expressões padrão e, embora seja uma alternativa viável, expressões regulares são fortes e lentas. Ter um vetor processual para palavras inteiras em um texto, uma descrição vernacular dessas palavras, é uma maneira muito mais eficiente de resolver esse problema. O conceito de pesquisa completa de texto e o tipo de dados TSVector foi criado para responder a ele. Existem dois métodos no PostgreSQL que fazem exatamente o que queremos:
Exemplo 01:
Vamos começar com uma ilustração simples de criar um vetor. Suponha que você queira fazer um vetor para a corda: “Algumas pessoas têm cabelos castanhos encaracolados através da escovação adequada.”. Então você deve escrever uma função to_tvSector () junto com esta frase entre colchetes de uma consulta selecionada, conforme anexado abaixo. A partir da saída abaixo, você pode ver que ele produziria um vetor de referências (posições de arquivo) para cada token, e também onde termos com pouco contexto, como artigos (o) e conjunções (e, ou), são deliberadamente ignorados.
>> selecione To_TSVector ('Algumas pessoas têm cabelos castanhos encaracolados através da escovação adequada');Exemplo 02:
Suponha que você tenha dois documentos com alguns dados em ambos. Para armazenar esses dados, agora estaremos usando um exemplo real de geração de tokens. Suponha que você tenha criado uma tabela 'dados' em seu banco de dados 'teste' com algumas colunas usando a consulta de tabela Create abaixo. Não se esqueça de criar uma coluna do tipo TVSector chamada 'Token'. A partir da saída abaixo, você pode dar uma olhada na mesa que foi criada.
>> Crie dados da tabela (chave primária de identificação, texto de informações, token tsvector);Agora, se volta para adicionar os dados gerais de ambos os documentos nesta tabela. Portanto, tente o comando inserir abaixo no seu shell da linha de comando para fazê-lo. Finalmente, os registros de ambos os documentos foram adicionados com sucesso na tabela 'dados'.
>> Insira os valores de dados (info) ('dois erros nunca podem fazer um certo.'), (' Ele é quem pode jogar futebol.'), (' Posso desempenhar um papel nisso?'), (' A dor dentro de um não pode ser entendida '), (' Traga pêssego em sua vida);Agora você tem que colonizar a coluna de token de ambos os documentos com seu vetor específico. Por fim, uma simples consulta de atualização preencherá a coluna Tokens por seu vetor correspondente para cada arquivo. Então, você tem que executar a consulta declarada abaixo na casca de comando para fazer isso. A saída está mostrando que a atualização foi finalmente feita.
>> Atualize os dados f1 definido token = to_tsvector (F1.info) a partir de dados f2;Agora que temos tudo no lugar, vamos voltar à nossa ilustração de "Can One" com uma varredura. To_tsQuery com e operador, como dito anteriormente, não faz diferença entre os locais dos arquivos nos arquivos, como mostrado da saída declarada abaixo.
>> Selecione ID, informações de dados onde token @@ to_tsquery ('Can & um');Exemplo 04:
Para encontrar palavras que estão "próximas", tentaremos a mesma consulta com o operador ''. A alteração é exibida na saída abaixo.
>> Selecione ID, informações de dados onde token @@ to_tsquery ('Can One');Aqui está um exemplo de nenhuma palavra imediata ao lado de outro.
>> Selecione ID, informações de dados onde token @@ to_tsquery ('One Pain');Exemplo 05:
Encontraremos as palavras que não estão imediatamente próximas uma da outra, usando um número no operador de distância para referenciar a distância. A proximidade entre 'Bring' e 'Life é 4 palavras além da imagem exibida.
>> Selecione * FROM dados onde token @@ to_tsquery ('traga vida');Verificar a proximidade entre as palavras por quase 5 palavras é anexado abaixo.
>> Selecione * FROM dados onde token @@ to_tsquery ('errado certo');Conclusão:
Por fim, você fez todos os exemplos simples e complicados de pesquisa de texto completo usando os operadores e funções TO_TVSECTOR e TO_TSQUERY.