Infinispan als Storage für Lucene Indizes

Infinispan kommt mit einer hoch skalierbaren, verteilten Apache Lucene Directory Implementierung. Dieses Directory kann als vollwertiger Ersatz für bestehende Applikationen, die Lucene verwenden, genommen werden. Das Directory bietet außerdem u.a. verlässliches Index Sharing, automatische Knotenerkennung, automatische Ausfallsicherheit und Rebalancing und kann auf herkömmliche Speicherlösungen wie Dateisysteme, Datenbanken oder Cloud-Speicherlösungen zugreifen.

Die Directory-Implementierung erbt von der Klasse org.apache.lucene.store.Directory, sodass sie für die Speicherung von Indizes in einem Cluster-weiten shared Memory benutzt werden kann und vereinfacht die Verteilung des Indexes.

Verwendung

Folgender Quellcode soll kurz erläutern, wie mit Infinispan auf den Lucene Index zugegriffen werden kann.

import org.apache.lucene.store.Directory;
import org.infinispan.Cache;
import org.infinispan.lucene.directory.DirectoryBuilder;
import org.infinispan.manager.DefaultCacheManager
…

DefaultCacheManager cacheManager = new DefaultCacheManager("lucene-demo-cache-config.xml");

		      cacheManager.start();
		      try {
		         Cache<?, ?> cache = cacheManager.getCache();
		         Directory directory = DirectoryBuilder.newDirectoryInstance(cache, cache, cache, "dedek").create() ;
		         LuceneMain luceneMain = new LuceneMain(directory, cache);
		         luceneMain.run();
		      }
		      finally {
		         cacheManager.stop();
		      }

Der Indexname ist ein Primärschlüssel für die Identifizierung des Indexes. Wenn der gleiche Indexname auf einer anderen Instanz im Netzwerk benutzt wird, dann werden sie sich zusammenfügen und einen Cluster aufbauen, damit sie sich die Daten teilen können. Ein anderer Indexname dagegen führt dazu, dass verschieden Indizes im Cluster benutzt werden.

Short URL for this post: https://wp.me/p4nxik-25o
This entry was posted in Java EE, Java Persistence, Java Runtimes - VM, Appserver & Cloud and tagged , , , , . Bookmark the permalink.

Leave a Reply