Moteur de recherche V8

Document

Je suis tombé par hasard sur un article sur les recherches multicritères à l'aide du langage de script awk. Une idée de design a germé...

Dans ma recherche du toujours moins de lignes de code , je suis retourné à ma table à dessin pour développer un moteur de recherche appelé V8 car particulièrement rapide et puissant, puisque basé sur le point fort de awk dans la recherche de motifs/patterns !

Les motifs/patterns textuels sont transmis au script par (exemple) :
./V8 lisp abelson hal

Bien sûr, c'est un moteur inclusif, c'est à dire que chaque motif doit être trouvé ! Autrement dit je cherche ça et ça et ça etc...

N'importe quel ordre, n'importe quel nombre de motifs/patterns...

Ne tient pas compte de la casse mais tient compte des accents etc... Puisque compatible UTF-8 !

Sur Raspberry Pi / MX Linux, il faut installer gawk car celui d'origine ne gère pas les directives concernant la casse des caractères !

sudo apt install gawk

Le code :

#!/usr/bin/env ash
## script V8 moteur de recherche base KB 1 ligne/record
## (c)2024 Didier Jordana Creative Commons CC-BY-SA

## construction du fichier de commandes pour awk
echo -n "BEGIN {IGNORECASE=1};" > OUT ## Maj/Min !
for motif in "$@"; do ## chaque motif/pattern en args
    echo -n "/$motif/ && " >> OUT
done
## supprime le dernier && du fichier !
cat OUT | sed s/\&\&.$// > in.awk; rm -f OUT
## moteur multicritères !
awk -f in.awk < KB > SEARCH
exit 0

Le rendre exécutable par chmod +x V8

Base de données textuelle KB, une ligne par record, fichier de sortie de la recherche SEARCH.

La licence proposée est la Creative Commons CC-BY-SA. Ce qui signifie que vous pouvez adapter le code source à votre convenance, à condition que vous me citiez et que vous donniez les mêmes droits aux autres (karma)...

Enjoy !

Document

Retour