In diesem Dokument wird auf die Konzepte von Mindbreeze InSpire eingegangen. Diese Konzepte beziehen sich einerseits auf den Standalone-Betrieb (mit nur einer Appliance), aber auch auf den verteilten Betrieb (mit mehreren Appliances).
Ist ein Metadatum aggregatable (aggregierbar), ist es automatisch auch regexmatchable, mit der zusätzlichen Eigenschaft, dass das Metadatum als Facette (Filter) zur Verfügung steht. Man unterscheidet zwischen:
Die „Aggregated Metadata Keys“ können pro Index konfiguriert werden, wobei die „Advanced Settings“ aktiviert sein müssen, damit diese Option sichtbar ist. Damit ist es möglich, Metadaten als „aggregatable“ zu markieren. Änderungen in dieser Option ziehen eine Änderung des Indexschemas nach sich.
Folgende Metadata Keys sind für Built-In Metadaten reserviert:
Name | Typ |
mes:docid | Integer |
mes:key | String |
mes:size | Integer |
category | String |
fqcategory | String |
categoryclass | String |
categoryscope | String |
mes:date | String |
title | String |
datasource/mes:key | String |
datasource/category | String |
datasource/fqcategory | String |
extension | String |
mes:boost | Float |
mes:uniformdocid | Integer |
Die „Category“, „Category Instance“ und die „Fully Qualified Category“ werden in der untenstehenden Tabelle beschrieben:
Name | Metadatum | Beschreibung |
Category | datasource/category | Dokumente, die von einem bestimmten Crawler indiziert werden, haben immer die gleiche Category. Diese ist also nicht konfigurierbar. |
Category Instance | datasource/categoryinstance | Die Category Instance kann bei den meisten Crawlern konfiguriert werden, sodass diese die Category Instance für ihre gecrawlten Dokumente setzen. |
Fully Qualified Category | datasource/fqcategory | Die Fully Qualified Category wird generiert, indem die Category und Category Instance zusammengesetzt wird (mit einem Doppelpunkt in der Mitte, z. B. Web:Default). Diese muss für jeden Crawler eindeutig sein, falls jeder Crawler im Search Client einen eigenen Filter-Wert für den Filter Quelle erhalten soll. |
Als Document Info wird jener Teil des Index benannt, der In-Memory für Analyse zur Verfügung steht. Die Steuerung der Document Info Zonen (Eigenschaften) kann über den Category Descriptor, die Semantic Pipeline oder die Aggregated Metadata Keys erfolgen.
Die Ausprägung welche Eigenschaften via der Document Info zur Verfügung stehen, wird auch Document Info Schema genannt.
Die Index Konfiguration umfasst alles was den Index konfiguriert. Die Index Konfiguration ist im Index Dateisystem abgelegt.
Eine Schema-Änderung zieht eine Document Info-Reinvertierung nach sich. In der folgenden Liste finden Sie Beispiele, die eine Schema-Änderung verursachen:
Nachdem ein gefiltertes Dokument im Index abgelegt wird, wird es invertiert, sodass es durchsuchbar wird („Index Invertierung“). Außerdem werden Dokumente während der Invertierung mit Metadaten angereichert (beschrieben in der Semantic Pipeline).
Bei einer Schema-Änderung wird der Index automatisch bezüglich der Document Info neu invertiert.
Bei der vollständigen Re-Invertierung wird nicht nur die Dokumentinfo neu invertiert, sondern der gesamte invertierte Index neu aufgebaut.
Dazu kann das Skript /opt/mindbreeze/scripts/move_inverted_index.sh benutzt werden.
Dabei wird der invertierte Index in das angegebene Backupverzeichnis verschoben und beim nächsten Indexstart neu aufgebaut.
Der betroffene Index muss dabei gestoppt sein. Nach dem Starten ist der Index erst nach Abschluss der Re-Invertierung wieder verfügbar.
./move_inverted_index.sh
--basedir INDEX_DIRECTORY
--destdir BACKUP_DIRECTORY
[--category CATEGORY]
[--bucket BUCKET_NR]
[--overwrite]
| --help | -h
Wird weder die category noch ein bucket angegeben, so wird der invertierte Index aller „Categories“ in allen „Buckets“ verschoben.
Der Parameter category beschränkt das auf die spezifizierte „Category“.
Der Parameter bucket beschränkt das auf das angegebene „Bucket“.
Indizes können über mehrere Services verteilt werden, sodass sie als unabhängige Prozesse auf separaten Speichervolumen laufen können. Diese Entkopplung ermöglicht eine mehrstufige Speicherstrategie, bei der häufig genutzte „heiße“ Indizes auf leistungsstarken SSD-Laufwerken gehostet werden, um die Latenz zu minimieren, während größere, seltener aufgerufene „kalte“ Indizes auf kostengünstigen HDD-Speicher verlagert werden können.
Um die Leistung über alle Ebenen hinweg aufrechtzuerhalten, werden häufig aufgerufene Segmente des invertierten Index im Arbeitsspeicher zwischengespeichert, wodurch hohe Abrufgeschwindigkeiten auch für Indizes gewährleistet sind, die sich auf langsameren physischen Speichermedien befinden.
Eine spezielle Form der Struktur eines Index. Standardmäßig wird für alle Indizes das „Multi Index Layout“ verwendet, was vor allem für den verteilten Betrieb mit mehreren Mindbreeze InSpire Appliances wichtig ist. Siehe auch Handbuch – Verteilter Betrieb (G7) – Index Layout.
Das System nutzt ein Multi-Index-Layout, das die Koexistenz mehrerer Indexeinträge innerhalb eines einzigen Indexes ermöglicht. Diese Architektur ermöglicht Aktualisierungen im Hintergrund und eine isolierte Vorbereitung des Index, ohne die Verfügbarkeit der Suche zu beeinträchtigen, was beispielsweise für den verteilten Betrieb mit mehreren Mindbreeze InSpire Appliances genutzt wird.
Bei der Verwendung einer solchen verteilten Mindbreeze InSpire-Architektur mit mehreren Appliances müssen die Indizes zwischen den Producer- und Consumer-Appliances synchronisiert werden. Während einer Indexsynchronisierung erstellt der Producer im Hintergrund einen neuen, unabhängigen Indexeintrag. Gleichzeitig fragt der Consumer weiterhin den bestehenden aktiven Indexeintrag ab. Diese Isolation stellt sicher, dass aufwendige Schreibvorgänge während der Synchronisierung weder die Suchleistung beeinträchtigen noch Sperren verursachen. Sobald der neue Indexeintrag fertiggestellt ist, führt das System einen „Atomic Swap durch, um den neuen Eintrag in den aktiven Zustand zu versetzen.
Zudem können zur Laufzeit mehrere Indexeinträge desselben zugrunde liegenden Index Services erstellt werden, was die Verwendung von Namespaces ermöglicht – der Standard-Indexeintrag kann ohne die Unterbrechung des Service gewechselt werden. Das Entfernen von Indexeinträgen ist ebenfalls zur Laufzeit über die API möglich.
Dokumente werden vom Crawler oder Pusher in der Semantic Pipeline verarbeitet und anschließend indiziert. Folgende Schritte werden dabei durchgeführt.
Der Filter schickt je nach Datei-Typ Dokumente weiter an die jeweiligen Content Filter. Die gefilterten Dokumente werden wieder an den Filter zurückgeschickt, um möglicherweise die gefilterten Dokumente nochmal an die jeweiligen Content Filter zu schicken. Ein Beispiel hierfür sind ZIP-Dokumente, die zuerst mit einem Content Filter entpackt werden müssen und anschließend mit weiteren Content Filtern prozessiert werden. Filter können im Mindbreeze Management Center unter „Configuration“ im Reiter „Filter“ konfiguriert werden und im Reiter „Indizes“ für die jeweiligen Indizes ausgewählt werden.
Mithilfe von Post Filter kann der Inhalt von bereits gefilterten Dokumenten prozessiert und verändert werden, bevor das Dokument zum Index gesendet wird.
Mithilfe von „Precomputed Synthesized Metadata” können neue Metadaten auf Basis von anderen Metadaten generiert werden. Der Zeitpunkt, wann diese Metadaten generiert werden sollen (in der Semantic Pipeline), kann mit der Option „Transformation Pipeline Slot“ bestimmt werden. Eine ausführliche Dokumentation finden Sie hier.
Mithilfe von „Entity Recognition“ können Metadaten generiert werden, indem gewisse Muster aus einem Text erkannt werden (mithilfe von Regex). So können Beispielsweise Datum, UNC-Pfade, etc. erkannt werden. Eine ausführliche Dokumentation finden Sie hier.
Mithilfe der „CSV Transformation“ können auch Metadaten generiert werden. Dabei ist es möglich einen Wert eines Metadatums mit einem Wert einer bestimmten Spalte im CSV zu vergleichen. Stimmt der Wert aus dem Metadatum mit dem Wert aus der Spalte überein, kann man den Wert einer anderen Spalte aus derselben Zeile in ein neues Metadatum schreiben und dem Resultat anfügen. Weitere Informationen können in der Dokumentation Konfiguration – Metadaten Anreicherung gefunden werden.
Eine weitere Möglichkeit, um Dokumente mit Metadaten anreichern zu können, sind Item Transformatoren. Mindbreeze InSpire bietet dabei verschiedene Item Transformatoren, wie z. B. das LanguageDetector Plugin.
Mithilfe der im Index integrierten „Language Detection“ kann die Sprache eines Dokuments ohne zusätzliches Plugin erkannt werden.
Die anschließende „Named Entity Recognition (NER)“ kann Entitäten sowohl im Inhalt als auch in den Metadaten eines Dokuments identifizieren und klassifizieren. Eine ausführliche Dokumentation finden Sie hier.