Lucene-Index: Unterschied zwischen den Versionen
Sed (Diskussion | Beiträge) K |
Sed (Diskussion | Beiträge) K |
||
Zeile 13: | Zeile 13: | ||
Auch der WebCrawler Nutch (http://lucene.apache.org/nutch/) erstellt für die Volltextsuche einer Website einen Lucene-Index. Diese vielfältigen Einsatzmöglichkeiten und die unglaubliche Performanz machen den Einsatz eines solchen Index interessant. | Auch der WebCrawler Nutch (http://lucene.apache.org/nutch/) erstellt für die Volltextsuche einer Website einen Lucene-Index. Diese vielfältigen Einsatzmöglichkeiten und die unglaubliche Performanz machen den Einsatz eines solchen Index interessant. | ||
+ | ==IES & Lucene Index== | ||
Der IES bietet über einen speziellen <code>IndexerService</code> die Möglichkeit eigene Indices pro Mandant zu definieren. Auf einfache Art werden dann automatisch Inhalte aus Artikeln beim Speichern in den Index übernommen. Der IES unterstützt dabei eine Vielzahl von Contenttypen, sowie die Möglichkeit Default-Werte anzugeben. Der hierbei erstellte Index ist in UTF-8 kodiert und unterstützt damit vollständig jede Sprache. | Der IES bietet über einen speziellen <code>IndexerService</code> die Möglichkeit eigene Indices pro Mandant zu definieren. Auf einfache Art werden dann automatisch Inhalte aus Artikeln beim Speichern in den Index übernommen. Der IES unterstützt dabei eine Vielzahl von Contenttypen, sowie die Möglichkeit Default-Werte anzugeben. Der hierbei erstellte Index ist in UTF-8 kodiert und unterstützt damit vollständig jede Sprache. | ||
Zeile 49: | Zeile 50: | ||
Allerdings bildet der Index stets die Eingaben der Redakteure ab und hat keine Beziehung zu möglichen Freigaben. Es wird stets die aktuelle Version eines Artikels für alle konfigurierten Felder verwaltet. Es handelt sich somit um ''nicht freigegebene Inhalte''. Mögliche Publkationen müssen eigenständig ausgewertet werden. | Allerdings bildet der Index stets die Eingaben der Redakteure ab und hat keine Beziehung zu möglichen Freigaben. Es wird stets die aktuelle Version eines Artikels für alle konfigurierten Felder verwaltet. Es handelt sich somit um ''nicht freigegebene Inhalte''. Mögliche Publkationen müssen eigenständig ausgewertet werden. | ||
+ | ==Konfiguration eines Index== | ||
Um einen Index zu definieren wechselt man im ''IESAdmin'' in den Bereich ''Indexer''. Dort kann man sowohl den Anker, als auch den Pfad, an dem der Index gespeichert werden soll angeben. Außerdem wählt man in welchen Mandanten dieser Index verwendet werden soll. | Um einen Index zu definieren wechselt man im ''IESAdmin'' in den Bereich ''Indexer''. Dort kann man sowohl den Anker, als auch den Pfad, an dem der Index gespeichert werden soll angeben. Außerdem wählt man in welchen Mandanten dieser Index verwendet werden soll. | ||
Version vom 30. März 2009, 12:20 Uhr
Der IES bietet interne Funktionen zur Erstellung und Verwaltung eines Lucene-Index. Apache-Lucene (http://lucene.apache.org) ist eine hochperformante, hochfunktionale, textbasierte Suchmachine. Dabei handelt es sich im wesentlichen um eine Definition, wie Daten für Volltext-Suchen organisiert werden.
Ein solcher Index wird innerhalb eines eigenen Ordners im Dateisystem über mehrere Dateien organisiert. Das ermöglicht die transparente Verteilung auf unterschiedliche Systeme über Standard-Mechanismen. Der Zugriff auf den einen solchen Index ist über eine Vielzahl von Programmiersprachen möglich:
- Java
- IES (nativ)
- PHP (über das Zend-Framework: http://www.framework.zend.com)
- C# and .NET
- C (mit Hilfe von Perl und Ruby)
- Python
- ...
Auch der WebCrawler Nutch (http://lucene.apache.org/nutch/) erstellt für die Volltextsuche einer Website einen Lucene-Index. Diese vielfältigen Einsatzmöglichkeiten und die unglaubliche Performanz machen den Einsatz eines solchen Index interessant.
IES & Lucene Index
Der IES bietet über einen speziellen IndexerService
die Möglichkeit eigene Indices pro Mandant zu definieren. Auf einfache Art werden dann automatisch Inhalte aus Artikeln beim Speichern in den Index übernommen. Der IES unterstützt dabei eine Vielzahl von Contenttypen, sowie die Möglichkeit Default-Werte anzugeben. Der hierbei erstellte Index ist in UTF-8 kodiert und unterstützt damit vollständig jede Sprache.
Auch die Indizierung von binären Inhalten ist für folgende Dateitypen mölglich:
- PDF-Dokumente (bis PDF-Version 1.5)
- Microsoft Word, Excel, Powerpoint (bis Version Office 2007)
- RTF-Dokumente
- OpenOffice Dokumente
- XML-, HTML- und einfache Text-Dokumente
Weiterhin werden für unterschiedliche Typen von Elementen immer weitere Systemdaten in den Index übertragen. Auf diese Angaben kann über die entsprechenden Keys zugegriffen werden:
- Element (gemeinsame Felder aller Elemente, auch Artikel)
id
: IDtype
: Typname
: Namesortname
: Sortiername (ohne Akzent-Zeichen, alle klein geschrieben)anchor
: Ankerparent
: ID des Parent (ohne Typ)comment
: Kommentarchanged
: Datum der letzen Änderungcreated
: Datum der ErstellungchangedBy
: ID des Nutzers, der das Element zuletzt bearbeitet hatcreatedBy
: ID des Nutzers, der das Element erstellt hat
- Artikel (gemeinsame Felder aller Artikeltypen)
publisher
: Liste aller Publisher-ID's
- Artikel mit Datei (gemeinsame Felder aller Medien oder normalen Artikel
filename
: Dateinamesuffix
: Dateiendungpath
: Pfad der Datei
- Medienartikel
size
: Dateigrößemime
: Mime-Type
Allerdings bildet der Index stets die Eingaben der Redakteure ab und hat keine Beziehung zu möglichen Freigaben. Es wird stets die aktuelle Version eines Artikels für alle konfigurierten Felder verwaltet. Es handelt sich somit um nicht freigegebene Inhalte. Mögliche Publkationen müssen eigenständig ausgewertet werden.
Konfiguration eines Index
Um einen Index zu definieren wechselt man im IESAdmin in den Bereich Indexer. Dort kann man sowohl den Anker, als auch den Pfad, an dem der Index gespeichert werden soll angeben. Außerdem wählt man in welchen Mandanten dieser Index verwendet werden soll.
Um einen Index zu befüllen, muss im entsprechenden Template ein Formularfeld mit dem Namen SYS_INFE_indexes angegeben werden. Eine kommaseparierte Liste von Ankern gibt an in welche Indizes die Daten des Artikel übernommen werden sollen. Die Konfiguration regelt dabei, wie die Daten zu interpretieren sind.
Die Felder, die übertragen werden sollen, werden im IESAdmin für jeden Index einzeln definiert. Ein Indexer-Feld besitzt folgenden Felder:
- Name
- Name des Feldes, das indiziert werden soll.
- Vorgabewert
- Wert, der in den Index aufgenommen werden soll, wenn das Feld leer ist oder nicht existiert.
- Typ
- Daten-Typ wie Text, Zahl, Datum, Link oder Medium
- Boost
- Gewichtung des Feldes, das die Sortierreihenfolge bei Suchen auf den Index beinflusst.
- Speichern
- Gibt an, ob der Wert nicht nur indiziert sonder auch gespeichert werden soll. Werden die Daten nicht nur indiziert, sondern auch im Index gespeichert können nach der Suche auf den Index die Werte auch ausgegeben werden. Die Größe des Indexes erhöht sich allerdings erheblich, wenn auch die Daten mitgespeichert werden.