Verteiltes Lucene für skalierbare Volltextsuche

Apache Lucene ist eine sehr beliebte kostenlose Open-Source-Volltextsuchmaschine, die ursprünglich in Java geschrieben, aber auch auf .NET portiert wurde. Lucene ist eine eigenständige Bibliothek, die von Anwendungen eingebettet wird, um eine Volltextsuche durchzuführen.

NCache hat die Lucene-API in .NET in ihrer nativen Form über ihren In-Memory Distributed Cache implementiert (daher der Name Distributed Lucene). Damit ist das stand-alone Lucene eine extrem schnelle und linear skalierbare Volltextsuchlösung für .NET / .NET Core Anwendungen. Und dank der nativen Lucene-API müssen Sie keine Codeänderungen an Ihren .NET Lucene-Anwendungen vornehmen, um sie damit zu verwenden NCache.

Verteilte Lucene-Architektur

Auf der Client-Seite, NCache stellt Ihrer .NET-Anwendung die native Lucene.NET-API bereit, sodass Sie keinen Code in Ihrer Anwendung ändern müssen. Und am Backend NCache verwendet dasselbe Lucene.NET, um Indizes in einer verteilten Umgebung zu erstellen und später Volltextsuchen auf verteilte Weise durchzuführen. Die Ergebnisse dieser verteilten Suchen werden dann zusammengeführt, bevor sie Ihrer Anwendung präsentiert werden.

Native Lucene-API

Verteilt Lucene mit NCache stellt Ihnen eine native Lucene-API zur Verfügung. Dadurch haben Sie folgende Vorteile:

  • - Keine Codeänderung: Sie müssen keine Codeänderungen an Ihrer Lucene-Anwendung vornehmen, um Distributed Lucene zu verwenden. Wechseln Sie einfach Ihren Anbieter zu NCache.
  • - Industriestandard-API: Indem Sie Lucene in Ihrer Anwendung verwenden, bleiben Sie bei der branchenweit beliebtesten Volltextsuch-API.

Extrem schnell und linear skalierbar

Distributed Lucene ist aus folgenden Gründen extrem schnell und skalierbar:

  • - In-Memory (Schnell): Distributed Lucene baut darauf auf NCache das ist ein verteilter In-Memory-Datenspeicher. Dadurch ist Distributed Lucene auch In-Memory und damit sehr schnell.
  • - Lucene-Index partitioniert: Um Skalierbarkeit bereitzustellen, wird der Lucene-Index über alle Server im Cluster verteilt. Auf diese Weise wird der Lucene-Index beim Hinzufügen weiterer Server zum Cluster automatisch neu partitioniert und redisauf intelligente Weise durch die Verwendung von Tribut NCache Partitionsreplikat-Cache Topologie.
  • - Parallele Suchen: Da der Lucene-Index partitioniert ist, sendet Distributed Lucene diese an alle Server im Cluster, wenn Ihre Anwendung eine Volltextsuchabfrage ausgibt. Und auf diese Weise läuft Ihre Abfrage parallel über mehrere Server. Dann werden die Ergebnisse all dieser parallelen Abfragen zusammengeführt, bevor sie zu Ihrer Anwendung zurückkehren.
  • - Server zur Laufzeit zum Cluster hinzufügen/entfernen: Sie können weitere Server hinzufügen NCache Cluster zur Laufzeit, ohne Ihre Anwendung anzuhalten oder Ihren Lucene-Index neu zu erstellen. Lucene-Index ist automatisch redisohne Unterbrechung an alle Server im Cluster verteilt.
  • - Erhöhen Sie den Lucene-Index zur Laufzeit Sie können dem Lucene-Index zur Laufzeit weitere Elemente hinzufügen, ohne den gesamten Lucene-Index anzuhalten oder neu zu erstellen.

Hochverfügbarkeit

Hier sind einige Highlights von Distributed Lucene in diesem Bereich:

  • - Replizierter Lucene-Index: Der Lucene-Index wird über alle Server im Cluster verteilt. Anschließend wird jede Partition mithilfe von auf einen anderen Server im Cluster repliziert Partitionsreplikat-Cache Topologie ein NCache. Dies stellt eine hohe Verfügbarkeit sicher, sodass beim Ausfall eines Servers die Replik dieser Partition automatisch ohne Unterbrechungen verfügbar ist.
  • - NCache Cluster ist dynamisch: dynamische Natur dieses Clusters bedeutet, dass sich der Cluster automatisch anpasst, wenn ein Server ausfällt, um mit einem Server weniger zu arbeiten. Und das alles geschieht ohne Unterbrechungen. Wenn Sie die Anzahl der Server zur Laufzeit erhöhen müssen, fügt der Cluster sie auf ähnliche Weise automatisch ohne Unterbrechungen zum Cluster hinzu.
  • - Lucene-Index beibehalten/neu laden: Sie können den gesamten Lucene-Index auf der Festplatte speichern. Auf diese Weise, wenn Sie das Ganze herunterbringen müssen NCache Cluster für die Wartung, können Sie ihn schnell neu starten und den gesamten Lucene-Index ohne benutzerdefinierte Programmierung neu laden.
  • - Lucene-Index automatisch laden: Verwenden Sie die CacheLoader Merkmal von NCache um Ihren benutzerdefinierten Code zu schreiben, um Dokumente oder Daten aus Ihrer Datenquelle zu laden und beim Start des Clusters einen Index zu erstellen.

Was macht man als nächstes?

© Copyright Alachisoft 2002 - Alle Rechte vorbehalten NCache ist eine eingetragene Marke der Diyatech Corp.