Recherche floue postgresql

Recherche floue postgresql
Un mot flou mène à partiel ou à peu de temps. Cette recherche traite du résultat qui ne voit pas la recherche précise ou parfaite. La recherche floue des données dans PostgreSQL contient différentes approches. Soit par des extensions ou des algorithmes. Mais le phénomène est appliqué dans les deux sens. Cet article contiendra toutes les méthodes possibles pour démontrer le travail et la mise en œuvre de la recherche floue dans les données PostgreSQL.

Implémentation de la recherche floue

Pour comprendre le concept de recherche floue, nous devons créer une table. Ici, un tableau nommé Painter est créé avec les colonnes de l'ID, du nom, de la nationalité, du genre et de la naissance. Chaque colonne contient respectivement ses types de données:

>> Créer Table Painter (ID INT, Name Varchar, Nationality Varchar, Gender Varchar, Birth_year int);

Une fois le tableau créé, il est temps de passer des données dans les lignes de la relation pour en faire un état fonctionnel. Une instruction d'insertion est utilisée pour ajouter les valeurs du tableau:

>> Insérer dans les valeurs du peintre (id, du nom, de la nationalité, du genre, de la naissance_year) (1, «John», «américain», «masculin», «2002»), (2, «Robert», «britannique», «masculin «,« 1990 »), (3,« Rosee »,« American »,« Femme »,« 2000 »), (4,« Shomia »,« allemand »,« Femme, «1982»);

Toutes les données seront entrées comme indiqué via le message que 4 lignes sont entrées dans le tableau.

Les données entrées peuvent être visualisées via l'instruction SELECT utilisée pour récupérer toutes les lignes et colonnes d'une table pertinente:

>> Sélectionner * dans Painter;

Toutes les données ont été affichées. Comme vous le savez, la recherche floue est celle qui provoque la correspondance partielle et apporte le résultat qui est le plus proche. Nous allons donc essayer chaque exemple de recherche floue.

Exemple 1: Recherche dans le filtre générique

Dans cet exemple, nous allons récupérer l'enregistrement de la table en appliquant une condition sur la colonne de nom. Toute colonne peut être affectée par la recherche floue. Cette situation peut se produire lorsque vous connaissez le début du nom, mais vous n'êtes pas sûr de la fin, nous utilisons donc cet opérateur «%» à la fin du nom. C'est ce qu'on appelle un filtre générique. Ce symbole peut être pour n'importe quel caractère. Nous allons donc filtrer les résultats dans lesquels le nom doit commencer par «Rob». La requête contient l'instruction SELECT pour récupérer la ligne de nom correspondante. Principalement lors de l'application de n'importe quelle condition après la clause où nous utilisons un symbole égal '='. Mais, comme nous ne sommes pas sûrs des résultats, nous utiliserons «comme» au lieu de ce symbole '=':

>> Sélectionner * dans Painter où le nom comme «Rob%»;

La valeur résultante montre qu'une seule ligne est obtenue. Qui correspond au nom. De même, nous utiliserons l'opérateur «%» aux deux extrémités. Afin que ce filtre recherche le nom du peintre, dont le nom peut commencer ou se terminer par n'importe quelle combinaison des caractères:

>> sélectionner * dans Painter où le nom comme «% h%»;

Cette commande a deux rangées ayant l'alphabet «H» au centre. De cette façon, vous pouvez voir que la correspondance de cordes floues fonctionne dans PostgreSQL.

Exemple 2:

En utilisant le même concept, si le mot que nous avons utilisé comme entrée 'ro', 'b', est supprimé, alors vous verrez que ces lignes seront récupérées dont le nom commence par RO:

>> Sélectionner * dans Painter où le nom comme «RO%»;

Par conséquent, vous pouvez voir que deux lignes sont sélectionnées. Pour filtrer à nouveau les résultats, nous pouvons utiliser cet opérateur de deux manières en l'appliquant en deux colonnes. Par exemple, le nom qui commence par le même mot «ro%» sera recherché, mais la colonne de nationalité sera appliquée avec le filtre de la ligne à commencer par le nom de nationalité «A%».

>> Sélectionner * dans Painter où le nom comme «RO%» et la nationalité comme «un%»;

Ainsi, une seule ligne sera sélectionnée en fonction de la condition.

Exemple 3: Recherche en utilisant des trigrammes

PostgreSQL a une extension utile qui est utilisée pour permettre l'extension PG_TRGM. Cette extension est utilisée pour apporter certaines fonctionnalités de la recherche de chaînes floues. Les trigrammes sont formés lorsqu'une chaîne est divisée en un groupe de trois lettres consécutivement. Tout d'abord, nous devons installer l'extension dans PostgreSQL. Parce que sans activer l'extension, nous ne pouvons pas appliquer une recherche floue de différentes manières:

>> créer une extension pg_trgm;

Une extension est ajoutée à la base de données. Maintenant, nous appliquerons certaines commandes utilisées en fonction des extensions installées. Dans ce type de recherche, nous utilisons le mot-clé «similitude» pour rechercher la correspondance la plus proche possible en fournissant la probabilité de plage qui montre à quel point les chaînes sont similaires sur l'échelle entre 0 et 1. Dans l'exemple suivant, nous rechercherons à partir du tableau en appliquant une clause où avoir une similitude comme «Johr», donc la 4ème lettre du mot est modifiée. La recherche sera en fonction des lettres fausses:

>> Sélectionner * dans Painter où la similitude (nom, 'johr')> 0.4;

Le résultat contiendra la ligne avec le nom de colonne similaire à John qui est John dans le tableau.

Maintenant, nous appliquerons le concept de similitude à la colonne de nationalité dans les lignes contenant «une» dans la chaîne présente dans les données postgresql. Le résultat sera limité aux 2 lignes:

>> sélectionner * parmi l'ordre du peintre par similitude (nationalité, «an») limite 2;

Le résultat ne contiendra que deux lignes car nous avons appliqué la limite. Ainsi, ces rangées ayant la nationalité de contenir «un» en eux seront affichées.

Exemple 4: Recherche dans les algorithmes phonétiques

Une autre façon de rechercher consiste à utiliser des algorithmes phonétiques. Ces algorithmes utilisent les règles utilisées pour représenter une chaîne en utilisant un shortcode. À cette fin, PostgreSQL utilise une extension à installer afin que nous puissions permettre le fonctionnement de la recherche. Cette extension est un correspondant à chaîne floue:

>> Créer une extension fuzzystrmatch;

Après avoir installé l'extension, nous utiliserons n'importe quelle fonctionnalité de l'extension. Par exemple, nous utiliserons une fonctionnalité connue sous le nom de métaphone.

Métaphone: Cet algorithme est utilisé pour renvoyer le code de différentes longueurs. C'est comme la fonction simple que nous utilisons dans PostgreSQL. De même, nous pouvons transmettre des arguments à cette fonction. Par exemple, la longueur est spécifiée qui renvoie la valeur à cette longueur.

Dans l'exemple, nous sélectionnerons l'ID, le nom et une nouvelle colonne avec le nom de métaphone qui raccourcira le nom du peintre pour former une abréviation. La clause WHERE contiendra une condition pour rechercher la nationalité égale à l'Américain:

>> Sélectionnez ID, nom, métaphone (nom, 10) de Painter Where Nationality = 'American' Limit 2;

Vous pouvez voir qu'à l'exécution, la colonne de métaphone contiendra les formes raccourcies des noms du peintre.

Conclusion

Cet article met la lumière à la recherche partielle des données en appliquant des chaînes floues correspondant. Si l'utilisateur n'est pas au courant des noms complets ou du nom partiel, il peut facilement obtenir les informations sur l'enregistrement en utilisant ce type de recherche. Nous avons utilisé des exemples élémentaires concernant à la fois les algorithmes et les extensions dans PostgreSQL. Nous espérons que vous avez trouvé cet article utile. Consultez d'autres articles sur les conseils Linux pour plus de conseils et d'informations.