L’ajout d’une fonction de recherche puissante à votre application n’est ni complexe ni fastidieux. Voici quelques recommandations solides !
Si de nombreuses technologies se sont imposées au cours des deux ou trois dernières décennies, la recherche est l’une des rares à faire partie intégrante de notre vie. Elle est omniprésente – sites de commerce électronique, blogs, bases de connaissances, etc. – non pas parce qu’une boîte de recherche et une icône ont l’air cool, mais parce qu’elle fait quelque chose dont on a désespérément besoin.
Si vous êtes une entreprise à la recherche d’une bonne solution de recherche ou que vous en avez assez de votre solution existante, que faire ?
Heureusement, vous n’avez pas besoin de payer des frais de licence ridicules, ni d’entretenir une équipe de 20 développeurs et administrateurs système. Aujourd’hui, je vous recommande quelques moteurs de recherche qui peuvent être installés et intégrés en un rien de temps, en particulier pour les petites entreprises disposant d’équipes de développeurs de 1 à 2 personnes.
MeiliSearch
MeiliSearch est l’un des meilleurs moteurs de recherche et l’un de ceux qui ont le plus de valeur.
Pourquoi MeiliSearch figure-t-il parmi mes meilleures recommandations ?
Voici ce que j’en pense.
Source ouverte
Tout le code source de MeiliSearch est disponible sur GitHub. Cela signifie que les développeurs peuvent examiner eux-mêmes n’importe quelle partie du code. En retour, les entreprises peuvent être assurées de la qualité et de l’intention (pas de portes dérobées ou de scanners dans le programme, par exemple). Et, bien sûr, les développeurs bien informés peuvent contribuer à améliorer encore davantage la technologie.
Une excellente interface utilisateur
MeiliSearch ne comporte pas de règles complexes (comme “a – b” qui signifie a mais pas b). Tapez simplement votre recherche de manière naturelle et les résultats s’afficheront de manière fluide. Le moteur est très tolérant et accommodant, fournissant des résultats précis même lorsque des fautes de frappe ou des synonymes sont utilisés. Il prend également en charge plusieurs langues.
Un excellent DevEx
Les développeurs vont adorer MeiliSearch ! Il n’est pas seulement personnalisable et évolutif, mais il s’interface avec une API REST ! La documentation est également excellente et complète. Bien que faire des appels HTTP soit trivial dans n’importe quel langage, des exemples de cinq langages (JavaScript, Ruby, Python, Golang et PHP) sont donnés pour ceux qui sont pressés.
Les solutions de recherche simples doivent être simples à utiliser et à configurer. MeiliSearch remplit donc toutes les conditions ! Lorsque vous êtes prêt à continuer, démarrez-le sur DigitalOcean en un clic.
Solr
Solr, qui fait partie du projet Apache, existe depuis quelques années déjà. Il est construit sur la bibliothèque Lucene, bien connue et très fiable, qui alimente également la solution de recherche populaire appelée ElasticSearch. Tout ce charabia signifie que Solr fait partie des solutions de recherche les plus puissantes, les plus évolutives, les plus conformes aux normes, les plus riches en fonctionnalités et les plus fiables.
Elle est utilisée par des géants tels que Disney, eBay, Netflix, Zappos et BestBuy. Cependant, cela ne signifie pas que vous ne pouvez pas exécuter une installation plus petite et plus simple (par exemple, une seule machine, pas de mise à l’échelle, pas de basculement – bien, parfois c’est bien) et utiliser cette centrale appelée Solr.
Alors, pourquoi utiliser Solr ?
Voici quelques excellentes raisons.
Précision et puissance
Solr est l’un des systèmes de recherche les plus précis, les plus performants et les plus puissants au monde. De plus, il s’agit d’un logiciel libre, ce qui explique pourquoi de grands noms (comme nous l’avons mentionné plus haut) l’ont adopté. Sa capacité à assimiler des documents et à répondre à des requêtes de recherche est inégalée.
Installation et maintenance simples
L’installation de Solr est aussi simple que la décompression et l’exécution du programme. Pour les systèmes simples, à une seule machine, aucune maintenance délicate n’est nécessaire ; gardez un œil sur l’utilisation de la RAM, car les solutions de recherche en général et les technologies basées sur Java en particulier peuvent être très gourmandes en RAM (parce qu’elles gardent ou essaient de garder tout dans la RAM pour fournir des lectures/écritures rapides).
Panneau d’administration
Solr est livré avec un panneau d’administration qui permet un contrôle visuel et une configuration. Avec un minimum de formation, même les non-développeurs peuvent apprendre à lire les tableaux clés. Peu de solutions de recherche dans cette liste sont dotées d’une telle fonctionnalité.
Orienté API, conforme aux normes
Solr fournit une interface de résultats dans une API qui peut gérer plusieurs formats – JSON, CSV, XML et binaire. Il produit des données de surveillance conformément à la norme JMX, ce qui représente un avantage considérable pour les développeurs Java.
Il y a encore beaucoup à dire en faveur de Solr, mais essayer de tout couvrir nous mènerait à la fin des temps. il suffit de dire que Solr est une solution de premier ordre et que vous ne pouvez jamais vous tromper, quel que soit le type de données avec lequel vous travaillez.
Elasticsearch
Elasticsearch a été, et est sans doute encore, un pionnier de la recherche de texte libre. En fait, même aujourd’hui, si vous demandez à un programmeur ou à un administrateur système de vous recommander un moteur de recherche, il est fort probable qu’Elasticsearch soit le seul nom qu’il vous donnera. Bien sûr, de nos jours, une part non négligeable d’entre eux recommanderont également quelque chose comme Algolia, mais nous avons déjà expliqué ce qu’il en était. 🤪
Ne vous laissez pas tromper par le bouton “Démarrer l’essai gratuit” dans le graphique ci-dessus. Bien que la technologie de base d’Elasticsearch soit open source et gratuite, l’entreprise tente de monétiser ses efforts et de cibler les entreprises. C’est pourquoi ce que vous voyez ici est en fait la version d’essai de leur service cloud, qui facilite la gestion d’Elasticsearch, en particulier lorsqu’il s’agit de clusters.
Uff, tant d’écheveaux à démêler. Récapitulons : Elasticsearch est open source et gratuit, et tout le monde peut l’installer facilement et l’utiliser sans aucune limite.
Et maintenant, comme prévu, plongeons dans les raisons de choisir Elasticsearch :
- Moteur de recherche mature et éprouvé. Cela signifie que vous avez beaucoup plus de chances de trouver des solutions si vous êtes confronté à des bogues “bizarres”.
- Une attention toute particulière est portée au clustering, à l’évolutivité et aux écritures asynchrones.
- Accessible via une API REST simple (ce que tous les autres ont fini par copier).
- Orienté vers les documents mais supporte les schémas si nécessaire.
- Résultats incroyablement rapides et précis. Vitesse de recherche configurable.
- Unedocumentation exceptionnelle, tant au niveau de la quantité que de l’utilité.
- Une plateforme complète de recherche et d’analyse en nuage (la pile ELK), si vous avez envie de payer pour la commodité.
Le seul reproche que je ferais à Elasticsearch est sa consommation massive de mémoire vive. En tant que consultants, il est déjà difficile de convaincre les clients d’investir dans un serveur coûtant 20 dollars par mois, ce qui est malheureusement loin d’être le cas d’Elasticsearch.
Si vous êtes curieux d’apprendre Elasticsearch, jetez un coup d’œil à ce cours Udemy.
Typesense
Typesense est un moteur de recherche léger, simple et puissant. Ceux qui recherchent l’utilité et la simplicité devraient certainement l’essayer.
L’une des meilleures choses à propos de Typesense est que vous pouvez l’essayer directement sur leur site web. Cela peut vous épargner de la frustration et du temps dans les cas où vous configurez tout et essayez l’API … pour découvrir qu’une ou plusieurs des fonctionnalités ne fonctionnent pas comme vous l’auriez souhaité.
Cela ne veut pas dire qu’il y a des bogues dans le moteur ; c’est simplement que l’approche du moteur peut ne pas correspondre à vos préférences, ou qu’elle peut être carrément en conflit avec votre domaine d’activité. Fautes de frappe, symboles spéciaux, synonymes et autres … vous pouvez vérifier les résultats que le moteur envoie directement sur la page d’accueil (il utilise pour cela une base de données de livres).
Comme vous pouvez le constater, cette section se trouve juste en dessous de la section supérieure. Dans la boîte de recherche, j’ai entré la requête “tra”, et en dessous je vois les résultats correspondants de la base de données de livres (ainsi que les métadonnées — nombre total de résultats, page actuelle, etc.)
Typesense a beaucoup d’avantages lorsqu’il s’agit de choisir un moteur de recherche :
- La technologie qui le sous-tend est entièrement ouverte et accueillante.
- Il est facile de configurer un système de haute disponibilité (HA), si vous en avez besoin.
- Tolérant en ce qui concerne les fautes de frappe et autres bruits dans les requêtes de recherche.
- Un système de filtrage avancé pour ceux qui ont besoin d’un contrôle fin des résultats de recherche.
- Une API REST simple, bien que leur documentation vous fera faire des efforts supplémentaires pour la trouver !
- Des clients(SDK) sont disponibles pour certains des principaux langages (JavaScript, Python, Ruby et PHP).
Enfin, si l’idée de mettre en place de nouveaux serveurs vous fatigue, Typesense propose également une offre en nuage où le provisionnement se fait en un seul clic. La facturation se fait à l’heure, et les lectures et écritures ne sont pas mesurées. Franchement, je dirais que c’est la meilleure option pour la plupart des entreprises, à condition qu’elles aient fixé les prix à l’avance et qu’elles se soient assurées qu’il s’agit d’un gain net.
Dans l’ensemble, Typesense a beaucoup de sens (sans jeu de mots !) si vous avez besoin de quelque chose de petit, d’élégant, de précis et d’un véritable cheval de bataille.
Sonic
Sonic se targue d’être une alternative à ElasticSaerch qui fonctionne avec “quelques Mo de RAM”.
Comment cela est-il possible ?
La machine virtuelle Java (JVM) est connue pour être gourmande en RAM (en général, le simple fait de démarrer la JVM consomme environ 1 Go de RAM) ; il n’est donc pas surprenant qu’un programme codé en langage Rust (qui offre aux développeurs un contrôle total et une sécurité de la mémoire) puisse fonctionner tout aussi rapidement et n’utiliser que quelques Mo de RAM.
À l’heure où j’écris ces lignes, quelques entreprises figurent parmi les utilisateurs, mais je suis sûr qu’il y en a d’autres qui n’ont pas pris la peine d’ajouter leur nom. Je ne me souviens pas comment ni de la période exacte, mais j’avais déjà rencontré Sonic auparavant ; à l’époque, même si j’étais heureux de voir une alternative à faible mémoire, je pensais qu’elle aurait besoin de temps pour se stabiliser et éliminer les bogues cachés. Eh bien, il semble que ce soit plus ou moins le cas ; seul l’avenir nous dira si Sonic deviendra populaire.
D’accord, les longues ruminations mises à part, pourquoi devriez-vous envisager d’utiliser Sonic pour votre organisation/projet ?
Voici quelques raisons :
- L’empreinte mémoire est extrêmement faible, en ce qui concerne les moteurs de recherche.
- Des bibliothèques sont disponibles pour tous les principaux langages de programmation. Node, PHP et Rust sont les langages que les auteurs ont eux-mêmes publiés, tandis que d’autres ont été créés par la communauté (réjouissez-vous, car les langages exotiques comme Elixir et Nim sont également couverts !)
- Plusieurs langues sont supportées (c’était trop pour les compter, mais je pense qu’à l’heure où j’écris ces lignes, 40 à 50 langues sont supportées).
- Une surprise ! Vous pouvez même utiliser de nouvelles langues, et le moteur fonctionnera (😂😂), bien que vous perdiez certaines fonctions avancées telles que les mots vides.
- Moteur très rapide. Si vous consultez leur page GitHub, vous verrez que les temps d’ingestion et de recherche étaient de l’ordre de la microseconde dans plusieurs cas ! Bien sûr, il s’agissait d’un test sur une seule machine, car la latence du réseau ne permettra jamais d’obtenir des chiffres aussi bas.
Si vous voulez voir ce moteur en action, allez sur ce lien (l’une de leurs entreprises utilisatrices) et jouez avec la boîte de recherche qui s’y trouve :
Sonic a certaines limites en tant que moteur de recherche. Les développeurs les ont soulignées et discutées ouvertement sur leur page GitHub. Mon conseil serait d’examiner attentivement cette liste et d’établir que vos cas d’utilisation ne sont pas communs avec leur domaine. Cela dit, tout a des limites ; c’est juste qu’elles sont cachées et que nous ne nous en rendons compte que lorsqu’il est trop tard. C’est pourquoi je considère Sonic comme un excellent choix pour un moteur de recherche.
TNTSearch
Nous avons maintenant une entrée fascinante dans cette liste. La première chose intéressante est que ce moteur de recherche complet, prêt à être mis en production, a été écrit en PHP !
Oui, de tous les langages possibles, PHP. Et je ne dis pas cela parce que je déteste PHP, mais parce que c’est un processus éphémère de par sa conception.
La deuxième chose intéressante est leur licence, du moins au moment où j’écris ces lignes. En fait, la licence elle-même est MIT, donc il n’y a pas de problèmes à ce niveau, mais les auteurs classent ce logiciel comme PS4Ware ; si vous utilisez TNTSearch en production, vous devriez leur envoyer un jeu PS4 ! 😂😂😂 Maintenant, ce n’est pas obligatoire, comme l’indique le “devrait”, mais c’est drôle au-delà de toute croyance. J’espère aussi qu’ils le feront évoluer vers une licence PS5, même s’il est trop tôt pour l’instant.
Quoi qu’il en soit, venant moi-même d’une solide formation en PHP Laravel, j’apprécie grandement les efforts de ces gars. Leur site web ne dit pas grand chose mais semble indiquer qu’ils sont consultants, donc je vous recommande vivement de les contacter si vous avez des projets !
Maintenant, y a-t-il de bonnes raisons d’utiliser TNTSearch dans vos projets ?
Oui, il y en a :
- Codé en PHP, pour PHP, par PHP. L’écosystème PHP a besoin de plus de solutions dédiées et de haute qualité comme celle-ci.
- Des fonctionnalités importantes telles que la recherche floue, la recherche géographique et la classification des textes.
- Facilité de changement de l’index de recherche, ce qui est une flexibilité majeure manquant à de nombreuses solutions.
- Le stemming, le classement BM25 et la tokenisation personnalisée garantissent une grande précision.
- Déploiement facile – comme n’importe quel autre paquet Composer !
Vous pouvez vérifier les performances du moteur ici et voir par vous-même à quel point il est rapide et précis. J’insiste à nouveau sur l’aspect PHP : si vous maintenez un projet PHP, vous voulez rester dans les murs de PHP autant que possible (pourquoi ? pensez aux coûts de recyclage). Et pour de tels cas, TNTSearch apporte une proposition de valeur qu’il est difficile de refuser !
Vespa
Vespa est une offre large et lourde. Comme quelques autres entrées de cette liste, elle est trop importante pour être décrite en quelques mots. Mais je dois essayer, alors je vais le faire 🙂 Vespa est un moteur de recherche, certes, mais l’utiliser comme un moteur de recherche ordinaire revient à gâcher son potentiel.
Vespa a été conçu pour traiter des quantités infinies de données (Big Data) et fournir des fonctionnalités basées sur l’apprentissage automatique et une personnalisation sans fin en plus de cela.
Vespa se positionne comme un concurrent d’Elasticsearch et des bases de données traditionnelles et fournit une comparaison décente sur ce qu’il faut utiliser et quand.
Comme vous pouvez le constater, plus vous souhaitez vous rapprocher des opérations basées sur l’apprentissage automatique, plus Vespa a du sens. En tant que simple moteur de recherche pour une petite ou moyenne entreprise, je ne pense pas qu’il présente des avantages par rapport à d’autres options.
Maintenant, si vous générez en permanence de grandes quantités de données et que vous souhaitez améliorer la prise de décision grâce à l’IA/ML (une description qui correspond à de nombreuses entreprises SaaS aujourd’hui), voici pourquoi Vespa a beaucoup de sens :
- Open source : Pas de licences bizarres ni de contrats piégés. Et rien à payer en plus, même si j’insiste toujours pour que les entreprises versent une somme régulière aux projets qu’elles utilisent le plus (même 50 $/mois les aideront beaucoup).
- Temps réel : Vespa est vraiment en temps réel. Il ne se contente pas d’assimiler, de traiter et de rechercher des données au fur et à mesure qu’elles arrivent ; même sa configuration peut être modifiée à la volée.
- Evolutif et tolérant : Vespa est facilement extensible. Il réagit également très bien à la disparition soudaine de nœuds, ce qui lui confère une grande fiabilité.
- Classement et recommandations : La recherche, le classement et les recommandations de Vespa peuvent être fusionnés avec des requêtes structurées pour fournir des résultats vraiment précis.
- AI/ML sans douleur : Vespa est livré avec des modèles ML pré-entraînés de haute qualité. Vous n’avez pas besoin d’embaucher 20 data scientists pour nettoyer et utiliser vos données.
- Plugins personnalisés : Un ensemble complet d’API aide les développeurs à créer des plugins Java personnalisés, s’ils ont besoin de modifier le fonctionnement du moteur.
Vespa est massif, sans aucun doute, donc il est clair pour les équipes qui sont un peu au-delà du niveau de départ – que ce soit la taille de l’équipe, les prouesses techniques, les budgets d’infrastructure, les volumes de données quotidiens, ou autre chose. Pour ce segment, Vespa est un succès et est fortement recommandé.
Conclusion
Search 🔎 est puissant, Search est magique et Search est partout !
C’est peut-être même de la magie noire, mais aujourd’hui, il n’y a aucune raison pour que tout le monde (avec l’aide d’un développeur, bien sûr) ne puisse pas profiter de ses avantages. Qu’il s’agisse d’entreprises, de particuliers ou de gouvernements, les moteurs de recherche présentés dans cette liste offrent un effort presque nul, avec des avantages et un impact exponentiels.
N’hésitez pas à vous procurer un serveur en nuage et à installer les logiciels de recherche de la liste ci-dessus qui vous intéressent.