Cela semble intimidant, mais ajouter une fonction de recherche puissante à votre application n'est ni complexe ni fastidieux. Voici quelques recommandations solides!
Alors que de nombreuses technologies ont impressionné au cours des 2-3 dernières décennies, une recherche est parmi les très rares qui sont devenues partie intégrante de nos vies. Il est partout — sites de commerce électronique, blogs, bases de connaissances, et plus encore - non pas parce qu'un champ de recherche et une icône ont l'air cool, mais parce qu'ils font quelque chose qui est désespérément nécessaire.
Si vous êtes une entreprise à la recherche d'une bonne solution de recherche ou si vous en avez assez de la vôtre, que faites-vous?
Heureusement, vous n'avez pas besoin de payer des frais de licence ridicules, ni de maintenir une équipe de 20 développeurs et administrateurs système. Aujourd'hui, j'ai quelques recommandations de moteurs de recherche qui peuvent être installées et intégrées en un rien de temps, en particulier par les petites entreprises avec promoteur équipes de taille 1-2.
MeiliSearch
L'un des moteurs de recherche les meilleurs et les plus rentables que vous rencontrerez est MeiliRecherche.

Alors, qu'est-ce qui me fait lister MeiliSearch parmi mes meilleures recommandations?
Voici.
Open source
Tout le code source qui alimente MeiliSearch est disponible en plein air 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, des développeurs compétents peuvent aider à améliorer encore plus la technologie.
Grande UX
MeiliSearch n'a pas de règles complexes (comme «a - b» signifie a mais pas b). Tapez simplement votre recherche naturellement et les résultats commenceront à s'afficher de manière fluide. Le moteur est très tolérant et accommodant, offrant 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.
Grand DevEx
Les développeurs adoreront MeiliSearch! Ce n'est pas seulement personnalisable et évolutif, mais des interfaces en tant qu'API REST! Documentation est également excellent et complet. 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. A ce titre, MeiliSearch coche toutes les cases! Lorsque vous êtes heureux de continuer, lancez-vous DigitalOcean en un clic.
Solr
Solr, qui fait partie du projet Apache, existe depuis quelques années maintenant. Il repose sur la bibliothèque Lucene bien connue et très fiable, qui alimente également la solution de recherche populaire appelée ElasticSearch. Tout cela signifie que Solr fait partie des solutions de recherche les plus puissantes, évolutives, conformes aux normes, riches en fonctionnalités et fiables.

Il est utilisé par des mastodontes 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 - enfin, parfois c'est bien) et utiliser cette centrale appelée Solr.
Alors, pourquoi utiliser Solr?
Voici quelques excellentes raisons.
Précis et puissant
Solr fait partie des systèmes de recherche les plus précis, les plus performants et les plus puissants au monde. De plus, il est open-source, ce qui explique pourquoi de grands noms (comme mentionné précédemment) se sont lancés dans cette voie. Sa capacité à digérer les documents et à répondre aux requêtes de recherche est incomparable.
Installation et maintenance simples
L'installation de Solr est aussi simple que de décompresser et d'exécuter le programme. Pour les systèmes simples à une seule machine, aucune maintenance délicate n'est requise ; 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 assez gourmandes en RAM (car elles conservent ou essaient de tout conserver dans la RAM pour fournir des lectures/écritures rapides).
panneau d'administration
Solr est livré avec un panneau d'administration qui permet la surveillance et la configuration visuelles. Avec une formation insignifiante, même les non-développeurs peuvent apprendre à lire les graphiques clés. Peu de solutions de recherche de cette liste sont dotées de fonctionnalités comme celle-ci.

Piloté par API, conforme aux normes
Solr fournit une interface de résultat dans une API qui peut gérer plusieurs formats - JSON, CSV, XML et binaire. Il génère des données de surveillance conformément à la norme JMX, un énorme avantage pour les développeurs Java.
Il y a beaucoup plus à dire en faveur de Solr, mais essayer de tout couvrir nous mènera à 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 était, et est sans doute toujours, un pionnier de la recherche de texte libre. En fait, même aujourd'hui, si vous demandez à un programmeur ou à un administrateur système une recommandation sur les moteurs de recherche, Elasticsearch est très probablement le uniquement. nom qu'ils trouveront. Bien sûr, ces jours-ci, une bonne partie recommandera quelque chose comme Algolia aussi, mais nous avons déjà expliqué comment cela se passe. 🤪

Ne vous laissez pas induire en erreur par le bouton «Démarrer l'essai gratuit» dans le graphique ci-dessus. Alors que le noyau ElasticSearch la technologie elle-même est open source et gratuite, l'entreprise essaie de monétiser ses efforts et de cibler les entreprises. Par conséquent, ce que vous voyez ici est en fait le test de leur service cloud, ce qui facilite la gestion d'Elasticsearch, en particulier lorsque des clusters sont impliqués.
Uff, tant de toiles à démêler. Récapitulons: Elasticsearch est open source et gratuit, et tout le monde peut le configurer facilement et l'utiliser sans aucune limite.
Et maintenant, comme prévu, plongeons dans les raisons du choix d'Elasticsearch:
- Mature, testé au combat moteur de recherche. Cela signifie que vous êtes beaucoup plus susceptible de trouver des solutions si vous êtes coincé avec des bogues «étranges».
- Focus de première classe sur regroupement, l'évolutivité et les écritures asynchrones.
- Accessible via un API REST simple (ce que tout le monde a fini par copier).
- Orienté document mais prend en charge le schéma si besoin.
- Follement rapide et précis résultats. configurable vitesse de recherche.
- Stellar Documentation, en quantité ainsi qu'en utilité.
- Une recherche et une analyse complète plateforme cloud (les Pile ELK), si vous avez envie de payer pour la commodité.
Le seul petit choix que j'aurais contre Elasticsearch est la consommation massive de RAM. Je veux dire, en tant que consultants, il est déjà assez difficile de convaincre les clients d'investir dans un serveur coûtant 20 $ / mois, ce qui est malheureusement loin d'être à la hauteur de ce qu'Elasticsearch exige.
Si vous êtes curieux d'apprendre Elasticsearch, consultez ceci Cours Udemy.
Typesense
Sens de la typographie est un moteur de recherche léger, simple mais puissant. Ceux qui recherchent l'utilité et la simplicité devraient absolument essayer celui-ci.

L'une des meilleures choses à propos de Typesense est que vous pouvez l'essayer directement sur leur site Web. Cela peut économiser du temps et de la frustration dans les cas où vous configurez tout et essayez l'API. . . seulement pour constater qu'une ou plusieurs fonctionnalités ne fonctionnent pas comme vous l'auriez souhaité.
Cela ne veut pas dire qu'il pourrait y avoir des bogues dans le moteur; c'est juste que la vision du moteur sur quelque chose n'est peut-être pas votre préférence, ou elle peut être totalement en conflit avec le domaine de votre entreprise. Fautes de frappe, symboles spéciaux, synonymes, etc. . . vous pouvez vérifier les résultats que le moteur lance directement sur la page d'accueil (ils utilisent une base de données de livres pour cela).

Comme vous pouvez le voir, cette section se trouve juste en dessous de la plus haute. Dans le champ de recherche, j'ai entré la requête "tra", et en dessous, je vois les résultats correspondants de la base de données des livres (ainsi que les métadonnées - résultats totaux, page actuelle, etc.).
Typesense a beaucoup à offrir lorsqu'il s'agit d'un moteur de recherche de choix:
- La technologie derrière elle est entièrement open source et accueillant.
- Facile à configurer et HA (haute disponibilité) configuration, si vous en avez besoin.
- Tolérant quand il s'agit de fautes de frappe et autres bruits dans les requêtes de recherche.
- An filtrage avancé système pour ceux qui ont besoin d'un contrôle précis des résultats de recherche.
- Evolution simple API REST, même si leurs documents vous feront travailler très dur pour le trouver !
- Clientèle (SDK) sont disponibles pour certains des principaux langues (JavaScript, Python, Ruby et PHP).
Enfin, si vous trouvez l'idée de mettre en place de nouveaux serveurs fatigante, Typesense a aussi un offre cloud où le provisionnement prend un simple clic. La facturation est à l'heure et les lectures et écritures sont illimitées. Franchement, je dirai que c'est la meilleure option pour la plupart des entreprises, à condition qu'elles aient déterminé le prix à l'avance et 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, élégant, précis et un vrai bourreau de travail.
Sonic
Sonique se targue d'être une alternative à ElasticSaerch qui fonctionne avec «quelques Mo de RAM».
Comment est-ce possible?
Eh bien, la machine virtuelle Java (JVM) est connue pour être gourmande en RAM (généralement, le simple démarrage de la JVM consomme environ 1 Go de RAM); Il n'est donc pas surprenant que quelque chose de codé en langage Rust (qui offre un contrôle total et une sécurité de la mémoire aux développeurs) puisse fonctionner aussi vite et n'utiliser que quelques Mo de RAM.

Au moment d'écrire ces lignes, quelques entreprises sont répertoriées parmi ses utilisateurs, même si je suis sûr qu'il y en a quelques autres qui n'ont pas pris la peine d'ajouter leurs noms. Je ne me souviens pas comment ni de la période exacte, mais j'ai rencontré Sonic plus tôt; à ce moment-là, alors que j'étais heureux de voir une alternative à faible mémoire, j'ai pensé qu'il faudrait du temps pour stabiliser et aplanir les bogues cachés. Eh bien, on dirait qu'ils sont plus ou moins arrivés; Seul le temps nous le dira à quel point Sonic devient populaire.
D'accord, si longtemps mis à part, pourquoi devriez-vous envisager d'utiliser Sonic pour votre organisation / projet?
Voici quelques raisons:
- Extrêmement peu de mémoire empreinte, dans la mesure où les moteurs de recherche vont.
- Les bibliothèques sont disponibles pour tous les principaux langages de programmation. Node, PHP et Rust sont ce que les auteurs eux-mêmes ont publié, tandis que d'autres ont été créés par la communauté (réjouissez-vous, car des raies exotiques comme Elixir et Nim sont également couvertes!).
- Plusieurs langues sont pris en charge (c'était trop compter, mais je pense qu'au moment de la rédaction, 40 à 50 langues sont prises en charge).
- Une surprise! Vous pouvez même utiliser nouvelles langues, et le moteur fonctionnera (😂😂), même si vous perdrez certaines fonctions avancées telles que les mots vides.
- Très moteur rapide. Si vous consultez leur page GitHub, vous verrez que les temps d'ingestion et de recherche étaient en microsecondes dans plusieurs cas! Bien sûr, il s'agissait d'un test sur une seule machine, car la latence du réseau ne laissera jamais les chiffres être aussi bas.
Si vous souhaitez voir ce moteur en action, accédez à à cette lien (l'une de leurs entreprises utilisatrices) et jouez avec le champ de recherche que vous voyez ici:

Il existe certaines limites à Sonic en tant que moteur de recherche. Les développeurs les ont mis en évidence et en ont discuté ouvertement sur leur page GitHub. Mon conseil serait d'examiner attentivement cette liste et d'établir que vos cas d'utilisation ne sont pas en commun avec leur domaine. Cela dit, tout a des limites ; c'est juste qu'ils sont gardés cachés, et nous ne nous en rendons pas compte avant qu'il ne soit trop tard. Par conséquent, je considère Sonic comme un excellent choix pour un moteur de recherche.
TNTSearch
Nous avons maintenant une entrée fascinante sur cette liste. La première chose intéressante est que ce moteur de recherche complet et prêt pour la production a été écrit en PHP !
Oui, de tous les langages possibles, PHP. Et je dis cela non pas parce que je déteste PHP mais parce que c'est un processus de courte durée de par sa conception.

La deuxième chose intéressante est leur licence, du moins au moment de l'écriture. En fait, la licence elle-même est MIT, donc il n'y a pas de problèmes là-bas, mais les auteurs classent ce logiciel comme PS4Ware; si tu utilises TNTRecherche 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 également qu'ils le mettront à niveau vers une licence PS5, même s'il est trop tôt pour le moment.
Quoi qu'il en soit, étant moi-même issu d'une solide expérience PHP + Laravel, j'apprécie beaucoup les efforts de ces gars. Leur site Web ne dit pas grand-chose mais semble indiquer qu'ils sont des consultants, donc je vous recommande fortement 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. le Écosystème PHP a besoin de solutions plus dédiées et de haute qualité comme celle-ci.
- Des fonctionnalités importantes telles que recherche floue, recherche géographique et classification de texte.
- Facile à modification le index de recherche, qui est une flexibilité majeure absente de nombreuses solutions.
- Stemming, classement BM25 et tokenisation personnalisée garantissent haute précision.
- Déploiement facile - comme n'importe quel autre package Composer!
Vous pouvez vérifier les performances du moteur ici et voyez par vous-même à quel point il est rapide et précis. Je soulignerais à nouveau l'aspect PHP: si vous maintenez un projet PHP, vous voulez rester autant que possible dans les murs PHP (pourquoi? Pensez aux coûts de re-formation). Et pour de tels cas, TNTSearch apporte une proposition de valeur difficile à refuser!
Vespa
Vespa est une offre large et lourde. Comme quelques autres entrées de cette liste, elle est trop volumineuse pour être capturée en quelques mots. Mais je dois essayer, donc je le ferai. 🙂 Vespa est un moteur de recherche, bien sûr, mais l'utiliser comme un moteur de recherche ordinaire gaspillera son potentiel.
Vespa a été conçu pour gérer 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 voir, plus vous souhaitez vous rapprocher des opérations axées sur l'apprentissage automatique, plus Vespa a de sens. En tant que moteur de recherche pur pour une petite ou moyenne entreprise, je ne pense pas qu'il présente des avantages par rapport aux autres options.
Maintenant, étant donné que vous générez de grandes quantités de données en continu et que vous souhaitez améliorer la prise de décision grâce à AI / ML (une description qui convient à de nombreuses entreprises SaaS aujourd'hui), voici pourquoi Vespa a beaucoup de sens:
- Open source: Pas de licences étranges et pas de contrats de piégeage. Et rien à payer en plus, même si je souligne toujours que les entreprises paient 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 peut pas seulement digérer, analyser et rechercher les données au fur et à mesure qu'elles arrivent ; même sa configuration peut être modifiée à la volée.
- Évolutif et tolérant: La Vespa est simple à l'échelle. Il répond également très bien à la disparition brutale des nœuds, offrant une grande fiabilité.
- Classement et recommandations: La recherche, le classement et les recommandations Vespa peuvent être fusionnés avec des requêtes structurées pour fournir des résultats vraiment précis.
- AI / ML indolore: 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: Il existe un ensemble complet d'API qui aident les développeurs à créer des plugins Java personnalisés, s'ils ont besoin de modifier le fonctionnement du moteur.
Vespa est énorme, sans aucun doute, donc c'est clair pour les équipes qui sont un peu au-delà du niveau de départ - qu'il s'agisse de la taille de l'équipe, des prouesses technologiques, des budgets d'infrastructure, des volumes de données quotidiens ou autre. Pour ce segment, Vespa frappera un home run et est fortement recommandé.
Conclusion
La recherche 🔎 est puissante, la recherche est magique et la recherche 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 en récolter les bénéfices. Des entreprises aux particuliers en passant par les gouvernements, les moteurs de recherche de cette liste offrent une offre presque sans effort avec des avantages et un impact exponentiels.
Allez-y et obtenez un serveur cloud et installez le logiciel de recherche ci-dessus que vous aimez utiliser.