POSTGRESQL Pesquisa difusa

POSTGRESQL Pesquisa difusa
Uma palavra difusa leva a parcial ou pouco clara. Esta pesquisa lida com o resultado que não vê a pesquisa precisa ou perfeita. A pesquisa difusa de dados no PostgreSQL contém diferentes abordagens. Através de extensões ou algoritmos. Mas o fenômeno é aplicado nos dois sentidos. Este artigo conterá todos os métodos possíveis para demonstrar o trabalho e a implementação da pesquisa nebulosa nos dados do PostGresql.

Implementação da pesquisa difusa

Para entender o conceito de pesquisa difusa, precisamos criar uma tabela. Aqui, uma tabela chamada Painter é criada com as colunas de ID, nome, nacionalidade, gênero e birth_year. Cada coluna contém seus tipos de dados, respectivamente:

>> Crie pintor de tabela (id int, nome Varchar, nacionalidade Varchar, gênero Varchar, birth_year int);

Depois que a tabela é criada, é hora de passar dados nas linhas da relação para fazê -lo em um estado funcional. Uma instrução de inserção é usada para adicionar os valores na tabela:

>> Insira no pintor (id, nome, nacionalidade, gênero, birth_year) valores (1, 'John', 'American', 'masculino', '2002'), (2, 'Robert', 'British', 'masculino ',' 1990 '), (3,' Rosee ',' American ',' feminino ',' 2000 '), (4,' shomia ',' alemão ',' mulher, '1982');

Todos os dados serão inseridos como mostrado através da mensagem de que 4 linhas são inseridas na tabela.

Os dados inseridos podem ser visualizados através da instrução SELECT usada para buscar todas as linhas e colunas de uma tabela relevante:

>> Selecione * do pintor;

Todos os dados foram exibidos. Como você sabe, a pesquisa difusa é a que causa a correspondência parcial e traz o resultado que é o mais próximo. Então, vamos tentar cada exemplo de pesquisa nebulosa.

Exemplo 1: Pesquisando através do filtro curinga

Neste exemplo, buscaremos o registro da tabela aplicando uma condição na coluna de nome. Qualquer coluna pode ser afetada pela pesquisa difusa. Essa situação pode ocorrer quando você conhece o início do nome, mas você não tem certeza sobre o final, então usamos esse operador '%' no final do nome. Isso é chamado de filtro curinga. Este símbolo pode ser para qualquer personagem. Então, vamos filtrar os resultados nos quais o nome deve começar com 'Rob'. A consulta contém a instrução SELECT para buscar a linha de nome correspondente. Principalmente, ao aplicar qualquer condição após a cláusula WHERE, usamos um símbolo igual '='. Mas, como não temos certeza dos resultados, usaremos 'como' em vez disso '=' símbolo:

>> Selecione * FROM PINTER, quando o nome como 'Rob%';

O valor resultante mostra que uma única linha é obtida. Que combina com o nome. Da mesma forma, usaremos o operador '%' em ambas as extremidades. Para que o filtro procure o nome do pintor, cujo nome pode começar ou terminar com qualquer combinação dos personagens:

>> Selecione * do pintor onde o nome como '%h%';

Este comando tem duas linhas com o alfabeto 'h' no centro. Dessa forma, você pode ver que a combinação de cordas difusa funciona no PostgreSQL.

Exemplo 2:

Usando o mesmo conceito, se a palavra que usamos como entrada 'ro', 'b', for removida, você verá que essas linhas serão buscadas cujo nome começa com ro:

>> Selecione * do pintor onde o nome como 'ro%';

Portanto, você pode ver que duas linhas são selecionadas. Para filtrar os resultados novamente, podemos usar esse operador de duas maneiras, aplicando -o em duas colunas. Por exemplo, o nome que começa com a mesma palavra 'ro%' será pesquisado, mas a coluna de nacionalidade será aplicada com o filtro da linha, começando com o nome da nacionalidade 'a%'.

>> Selecione * do pintor onde o nome como 'ro%' e nacionalidade como 'a%';

Assim, uma única linha será selecionada de acordo com a condição.

Exemplo 3: Pesquisando usando trigramas

PostgreSQL tem uma extensão útil que é usada para ativar a extensão PG_TRGM. Esta extensão é usada para trazer alguns recursos de pesquisa difusa de string. Os trigramas são formados quando uma corda é dividida em um grupo de três letras consecutivamente. Primeiro, precisamos instalar a extensão no PostgreSQL. Porque sem permitir a extensão, não podemos aplicar pesquisas difusas de maneiras diferentes:

>> Crie extensão PG_TRGM;

Uma extensão é adicionada ao banco de dados. Agora, aplicaremos alguns comandos usados ​​de acordo com as extensões instaladas. Nesse tipo de pesquisa, usamos a palavra -chave 'semelhança' para procurar a correspondência mais próxima possível, fornecendo a probabilidade de intervalo que mostra quão semelhantes são as strings na escala entre 0 e 1. No exemplo seguinte, procuraremos da tabela aplicando uma cláusula onde tendo similaridade como 'Johr', então a quarta letra da palavra é alterada. A pesquisa estará de acordo com as cartas enevoadas:

>> Selecione * do pintor onde similaridade (nome, 'johr')> 0.4;

O resultado conterá a linha com o nome da coluna semelhante a John que é John na tabela.

Agora, aplicaremos o conceito de similaridade à coluna de nacionalidade nas linhas que contêm 'e' na string presente nos dados do PostgreSQL. O resultante será limitado às 2 linhas:

>> Selecione * da Ordem pintora por similaridade (nacionalidade, 'an') limite 2;

O resultante conterá apenas duas linhas, pois aplicamos o limite. Então, aquelas linhas com a nacionalidade de conter 'e' nelas serão exibidas.

Exemplo 4: Pesquisando através de algoritmos fonéticos

Outra maneira de pesquisar é o uso de algoritmos fonéticos. Esses algoritmos usam as regras usadas para representar uma string usando um shortcode. Para esse fim, o PostGresql usa uma extensão a ser instalada para que possamos permitir o funcionamento da pesquisa. Esta extensão é um foder de cordas difusas:

>> Crie Fuzzystrmatch de extensão;

Depois de instalar a extensão, usaremos qualquer recurso da extensão. Por exemplo, usaremos um recurso conhecido como metaphone.

Metafone: Este algoritmo é usado para retornar o código de diferentes comprimentos. É como a função simples que usamos no PostgreSQL. Da mesma forma, podemos passar argumentos para esta função. Por exemplo, é especificado o comprimento que retorna o valor a esse comprimento.

No exemplo, selecionaremos ID, nome e uma nova coluna com o nome metaphone que reduzirá o nome do pintor para formar uma abreviação. A cláusula Where conterá uma condição para procurar a nacionalidade igual ao americano:

>> Selecione ID, nome, metaphone (nome, 10) do pintor onde nacionalidade = limite 'americano' 2;

Você pode ver que, na execução, a coluna Metaphone conterá as formas encurtadas dos nomes do pintor.

Conclusão

Este artigo lança luz para a pesquisa parcial dos dados aplicando strings difusos correspondentes. Se o usuário não tiver conhecimento dos nomes completos ou do nome parcial, ele poderá obter facilmente as informações sobre o registro usando esse tipo de pesquisa. Usamos exemplos elementares sobre os algoritmos e extensões no PostgreSQL. Esperamos que você tenha achado este artigo útil. Confira outros artigos de dica do Linux para obter mais dicas e informações.