<< Index-Update-Konzept [49/117] >>

Index-Update-Konzept


Startseite / Projekte / Lucene eLecture / Konzepte & Spezifikationen / Index-Update-Konzept

Index-Update-Konzept



Allgemein
Da das gleichzeitige Schreiben und Lesen auf dem selben Index nicht möglich ist (write-lock-exception), muss ein temporärer Sekundärindex erstellt werden, der anschließend mit dem Hauptindex verschmolzen wird. Zu beachten ist, dass der Hauptindex sehr groß werden kann, wenn das gesamte Volumen von 360 GB erfolgreich indiziert ist.
Theoretisch könnte der Index immer geschlossen und wieder geöffnet werden. Doch es ist anzunehmen dass die Performanz darunter leidet.
Nachfolgendes Verfahren sollte nur für das Aktualisieren des Indexes verwendet werden. Es ist schlecht geeignet für die erstmalige Erstellung des Indexes, da der Sekundärindex dann alles beinhaltet (Hauptindex leer) und das Verschmelzen ev. sehr lang dauern kann. Es ist anzunehmen, dass es bei Lucene schneller geht zu einem großen Index einen kleineren Index hinzuzufügen als umgekehrt.
Erkennung ob Dateien aktuell sind  Prüfen ob sich das Modifikationsdatum (last-modified) der Datei seit der letzten Indizierung geändert hat. Somit muss dieses im Index gespeichert werden.
Ein inhaltlicher Vergleich (per MD5-Checksumme) falls sich nur last-modified einer Datei geändert hat ist nicht notwendig. In diesem Fall wird die komplette Datei neu in den Index geschrieben.

Komplettes Verfahren 
- Öffne IndexReader auf Hauptindex (IndexReader: Beinhaltet (irrsinnigerweise) Funktionalität zum Löschen von Dokumenten)
- Erstelle IndexWriter auf neuen Sekundär bzw. Temporär-Index (IndexWriter: Beinhaltet Funktionalität zum hinzufügen von Dokumenten
- Laufe rekursiv über die Verzeichnisse und Dateien des File-Servers.
- Hole per Suchanfrage an den Index das zugehörige indizierte Dokument (falls vorhanden
- Fallunterscheidung:
- 1. Fall: Datei ist im Index aktuell
=> nichts tun
- 2. Fall: Datei ist im Index, aber nicht mehr aktuell
=> Lösche altes Dokument im Hauptindex
=> Schreibe neues Dokument in Sekundärindex
- 3. Fall: Datei ist nicht im Index
=> Schreibe Dokument in Sekundärindex
- 4. Fall: (Spezialfall) Im Index ist eine Datei, die auf dem File-Server nicht mehr vorkommt (gelöscht worden)
=> Lösche Dokument im Hauptindex
Bemerkung: Für die Erkennung dieses Falles muss noch eine geeignete und effiziente Erkennungsstrategie ausgearbeitet werden.
- Hauptindex enthält jetzt nur noch aktuelle Dokumente 
- Sekundärindex enthält alle neuen bzw. aktualisierten Dokumente
- Verschmelze Sekundärindex mit Hauptindex (Lucene bietet hierfür die entsprechende Funktionalität an
- Lösche Sekundärindex


Visitors PageClicks Valid XHTML 1.0! Valid CSS!

CanciÜber michSite-MapRechtlichesKontaktJSWins (JavaScript-Desktop-System)© 2004-2013 by Markus Krebs