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.