Lucene distribué pour une recherche en texte intégral évolutive

Apache Lucene est un moteur de recherche de texte intégral open source gratuit très populaire écrit à l'origine en Java mais également porté sur .NET. Lucene est une bibliothèque autonome que les applications intègrent afin d'effectuer des recherches en texte intégral.

NCache a implémenté l'API Lucene dans .NET dans sa forme native sur son cache distribué en mémoire (d'où le nom Distributed Lucene). Cela a transformé le Lucene autonome en une solution de recherche en texte intégral extrêmement rapide et linéairement évolutive pour .NET / .NET Core applications. Et, grâce à l'API Lucene native, vous n'avez pas besoin de modifier le code de vos applications .NET Lucene pour l'utiliser avec NCache.

Architecture Lucene distribuée

Côté client, NCache fournit à votre application .NET l'API native Lucene.NET afin que vous n'ayez pas à modifier le code de votre application. Et, sur le back-end, NCache utilise le même Lucene.NET pour créer des index dans un environnement distribué et plus tard pour effectuer des recherches en texte intégral de manière distribuée. Les résultats de ces recherches distribuées sont ensuite fusionnés avant d'être présentés à votre application.

API Lucene native

Lucene distribué avec NCache vous fournit une API Lucene native. En conséquence, vous en tirez les avantages suivants :

  • - Aucun changement de code : vous n'avez pas besoin de modifier le code de votre application Lucene pour utiliser Distributed Lucene. Changez simplement de fournisseur pour NCache.
  • - API standard de l'industrie : en utilisant Lucene dans votre application, vous vous en tenez à l'API de recherche en texte intégral la plus populaire du secteur.

Extrêmement rapide et linéairement évolutif

Lucene distribué est extrêmement rapide et évolutif pour les raisons suivantes :

  • - En mémoire (rapide) : Lucene distribué est construit sur NCache c'est une banque de données distribuée en mémoire. Par conséquent, Distributed Lucene est également en mémoire et donc très rapide.
  • - Index Lucene partitionné : Afin de fournir une évolutivité, l'index Lucene est partitionné sur tous les serveurs du cluster. Ainsi, au fur et à mesure que vous ajoutez des serveurs au cluster, l'index Lucene est automatiquement repartitionné et redisrendu hommage de manière intelligente en utilisant NCache Cache de Partition-Réplica topologie.
  • - Recherches parallèles : puisque l'index Lucene est partitionné, lorsque votre application émet une requête de recherche en texte intégral, Distributed Lucene l'envoie à tous les serveurs du cluster. Et, de cette façon, votre requête s'exécute en parallèle sur plusieurs serveurs. Ensuite, les résultats de toutes ces requêtes parallèles sont fusionnés avant de revenir à votre application.
  • - Ajouter/supprimer des serveurs du cluster lors de l'exécution : vous pouvez ajouter plus de serveurs à NCache cluster au moment de l'exécution sans arrêter votre application ou reconstruire votre index Lucene. L'indice Lucene est automatiquement redisrendu hommage à tous les serveurs du cluster sans aucune interruption.
  • - Augmenter l'indice Lucene au moment de l'exécution vous pouvez ajouter d'autres éléments à l'index Lucene lors de l'exécution sans arrêter ni reconstruire l'intégralité de l'index Lucene.

Haute Disponibilité

Voici quelques points forts de Distributed Lucene dans ce domaine :

  • - Index Lucene répliqué : L'index Lucene est partitionné sur tous les serveurs du cluster. Ensuite, chaque partition est répliquée sur un serveur différent du cluster en utilisant Cache de Partition-Réplica topologie dans NCache. Cela garantit une haute disponibilité. Ainsi, si un serveur tombe en panne, la réplique de cette partition est automatiquement disponible sans aucune interruption.
  • - NCache Le cluster est dynamique : le nature dynamique de ce cluster signifie que si un serveur tombe en panne, le cluster s'ajuste automatiquement pour fonctionner avec un serveur de moins. Et tout cela se passe sans aucune interruption. De même, si vous devez augmenter le nombre de serveurs lors de l'exécution, le cluster l'ajoute automatiquement au cluster sans aucune interruption.
  • - Persist/Reload Lucene Index : vous pouvez conserver l'intégralité de l'index Lucene sur le disque. De cette façon, si vous avez besoin de faire tomber l'ensemble NCache cluster pour la maintenance, vous pouvez rapidement le redémarrer et recharger l'intégralité de l'index Lucene sans aucune programmation personnalisée.
  • - Indice Lucene à chargement automatique : Utilisez Chargeur de cache caractéristique de NCache pour écrire votre code personnalisé pour charger des documents ou des données à partir de votre source de données et créer un index au démarrage du cluster.

Que faire ensuite?

© Copyright Alachisoft 2002 - . Tous droits réservés. NCache est une marque déposée de Diyatech Corp.