Maison  >  Article  >  développement back-end  >  Nous avons choisi Meilisearch plutôt que d'autres moteurs de recherche malgré un inconvénient majeur

Nous avons choisi Meilisearch plutôt que d'autres moteurs de recherche malgré un inconvénient majeur

WBOY
WBOYoriginal
2024-07-29 07:20:23561parcourir

Vaut-il la peine d’investir des ressources dans un moteur de recherche tiers ? Voici nos raisons.

Nous travaillons continuellement à l'amélioration de nos commentaires sur les produits par Hexmos jour après jour pour la prochaine version.

De nouvelles fonctionnalités et pages apparaissent, l'interface utilisateur change, des bugs sont remarqués et corrigés, et de nombreux changements se produisent dans le produit. Au fur et à mesure que le produit se développe, nous réalisons que nous devons améliorer la navigation à travers le produit.

Nous disposons déjà d'une barre latérale et d'un package de recherche côté client cmdk pour naviguer vers différents écrans, mais des difficultés surviennent lorsque nous voulons rechercher différents profils d'utilisateurs, équipes, performances d'équipe, etc., ce qui nous oblige à intégrer un meilleur moteur de recherche tiers pour les commentaires.

Une autre raison pour un moteur de recherche dédié est que nous avons d'autres produits dans la chaîne tels que FeedZap, qui nécessite à l'avenir des opérations de recherche de texte complexes.

Considérant cela, nous prévoyons de déployer des efforts pour mettre en œuvre un moteur de recherche dédié et puissant qui s'adapte à nos cas d'utilisation et à la disponibilité des ressources.

Comment choisir le moteur de recherche adapté à vos besoins

Il existe de nombreux moteurs de recherche disponibles, notamment des moteurs de recherche open source, sans serveur, basés sur serveur, etc.
Avant de vous lancer dans la recherche du bon système, il est toujours préférable de faire une analyse de vos besoins et de votre infrastructure, y compris vos besoins présents et futurs.

Pour certains produits, les données consultables sont minimes mais nécessitent une fonction de recherche décente avec un fonctionnement minimal, mais ne peuvent pas se permettre un serveur dédié.
Pour les autres produits, l'ensemble de données est plus grand, nécessite des opérations de recherche complexes supplémentaires et dispose de suffisamment de ressources pour charger un moteur de recherche dédié.

Sur cette base, j'ai examiné quelques moteurs de recherche populaires.

Besoin de performances décentes, l'ensemble de données est petit et ne peut pas se permettre un serveur

Recherche en texte intégral PostgreSQL

Si vous utilisez PostgreSQL et que vous ne souhaitez gérer aucune autre base de données basée sur un index, la recherche en texte intégral PostgreSQL (PSFTS) est une bonne option. Cependant, il n'est pas recommandé pour les cas d'utilisation importants où vous traitez des millions de transactions et une gestion étendue des données.

Blève

Bleve est une autre option à considérer si votre projet s'inscrit dans l'écosystème Go. Ceci est recommandé si vous ne pouvez pas compter sur de puissants services de moteur de recherche basés sur un serveur. Voici le rapport de référence sur Bleve.

Tantivy

Tantivy est écrit en Rust et est particulièrement utile pour les projets basés sur Rust. Il a reçu de nombreux retours positifs et constitue une bonne option à considérer.
We Chose Meilisearch Over  Other Search Engines Despite a Major Drawback

Besoin de performances puissantes, d'un grand ensemble de données et peut se permettre un serveur

Besoin de performances puissantes, d'un grand ensemble de données et peut se permettre un serveur

Si vous possédez un serveur ou une instance cloud et avez besoin d'un moteur de recherche puissant et évolutif avec un contrôle total, alors une option basée sur le serveur est la solution.

Nos considérations et exigences nous ont amenés à choisir un moteur de recherche basé sur serveur. Nous avons suffisamment de ressources pour l'héberger, et c'est mieux que les options sans serveur pour

  • Utilisation à long terme
  • Évolutivité
  • Prise en charge supplémentaire des opérations de recherche complexes telles que :
    • Recherche à facettes : cela signifie que lorsque vous effectuez des achats en ligne, vous pouvez rechercher « ordinateurs portables », puis utiliser la recherche à facettes pour affiner les résultats en sélectionnant des filtres tels que « prix inférieur à 1 000 $ », « marque : Apple » et « RAM ». : 16 Go."
    • Multirecherche : envisagez un site Web de voyage qui pourrait permettre aux utilisateurs de rechercher simultanément des vols, des hôtels et des locations de voitures et d'afficher les résultats intégrés.
    • Recherche au fur et à mesure de la frappe : il fournit des résultats de recherche en temps réel en fonction de chaque frappe de touche.
  • Système de recherche commun pour plusieurs produits.

Après un filtrage approfondi, nous l'avons réduit à quatre options dans cette catégorie, telles que :

  1. Meilisearch
  2. Typesense
  3. Recherche PISA
  4. Manticore

Voici une comparaison entre eux :

Criteria meiliSearch Typesense Pisa Search Manticore
Search-as-you-type yes yes No No
facet search yes yes No No
multiple schema/product support yes yes - yes
RAM usage for 224 MB disk:~305 MB RAM prmary index location is disk primary index location is RAM, for 100MB disk requires 300MB RAM - -
CPU Usage for 12 core machine it uses maximum 6 core github issues related to high cpu usage for 4vCPU handle 104 concurrent search/seconds - -
typo, synonyms handling yes yes - -

Nous avons filtré PISA Search et Manticore car aucun d'eux n'offre les fonctionnalités de recherche au fur et à mesure de la frappe et de recherche par facettes, qui sont requises pour notre application.

Continuez la lecture de l'article complet ici : https://journal.hexmos.com/we-chose-meilisearch-over-10-other-search-engines-despite-a-major-drawback/

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Modèle Fanout-Fanin dans GoArticle suivant:Modèle Fanout-Fanin dans Go