Konfiguration
Index-Servlets
Copyright ©
Mindbreeze GmbH, A-4020 Linz, 2024.
Alle Rechte vorbehalten. Alle verwendeten Hard- und Softwarenamen sind Handelsnamen und/oder Marken der jeweiligen Hersteller.
Diese Unterlagen sind streng vertraulich. Durch die Übermittlung und Präsentation dieser Unterlagen alleine werden keine Rechte an unserer Software, an unseren Dienstleistungen und Dienstleistungsresultaten oder sonstigen geschützten Rechten begründet. Die Weitergabe, Veröffentlichung oder Vervielfältigung ist nicht gestattet.
Aus Gründen der einfacheren Lesbarkeit wird auf die geschlechtsspezifische Differenzierung, z.B. Benutzer/-innen, verzichtet. Entsprechende Begriffe gelten im Sinne der Gleichbehandlung grundsätzlich für beide Geschlechter.
Einleitung
Um Index-Servlets aufrufen zu können, muss zuerst ein Index gestartet werden, bei diesem Index muss auch das Kontrollkästchen „Disable Unrestricted Privileged Servlets“ deaktiviert werden. Dazu gehen Sie in Ihrer Mindbreeze InSpire Konfiguration im Reiter Indices auf Ihren gewünschten Index. Dabei müssen allerdings „Advanced Settings“ aktiviert werden.
Nun können Sie die Index-Servlets unter:
https://<Appliance>:8443/index/<IndexPortNr>
erreichen.
Index-Servlets
Aggregate
Mit diesem Index-Servlet können Sie aggregierte Werte von Dokumenten erhalten, wie zum Beispiel die Anzahl verschiedener Dokumenttitel. Folgende Optionen können dabei konfiguriert werden:
- Column Name: Gibt die Spaltennamen des Indexes an, die für die Aggregation verwendet werden.
- Query Constraint: Gibt verschiedene Einschränkungen der Anfrage an. Zum Beispiel das Filtern nach Dokumentdatum. Die Suche ist auf Systemmetadaten (category, categoryinstance, fqcategory, mes:key, datasource/mes:key, url, extension, mes:uniformdocid, mes:date, mes:size, mes:lang, mes:nonfilterable, mes:filteredbymetadataonly, store:modificationdate, store:creationdate) beschränkt.
- Aggregation operator: Vier Operatoren können ausgewählt werden:
- Concatenation max value count: Gibt die maximale Anzahl der zu konkatenierenden Werte an.
- Concatenation value order: Gibt an, wie die Werte für die „CONCAT“ Funktion sortiert werden. Die folgenden Sortierungsoptionen sind verfügbar:
- UNORDERED
- ORDERED_DESCENDING
- ORDERED_ASCENDING
- Output Format: Gibt das Ausgabeformat an. Die folgenden Formate sind verfügbar: „csv“ und „protobuf_textual“.
- Expand Query: Wenn Expand Query auf false gesetzt (oder nicht bereitgestellt) ist, werden die internen Query Expression Transformers nicht verwendet. Dies kann für die folgenden Anwendungsfälle hilfreich sein:
- Optional Terms ist nur aktiv wenn der interne Term Series to Terms Transformer aktiv ist. Die Option Expand Query auf false zu setzen deaktiviert daher die Option Optional Terms.
- Wenn Natural Language Question Answering (NLQA) deaktiviert ist, werden standardmäßig alle Suchbegriffe automatisch in Ähnlichkeitsausdrücke umgewandelt. Die Option Expand Query auf false zu setzen deaktiviert daher Similarity Search und man kehrt zu einer normalen Stichwortsuche zurück.
Documents
Mit diesem Index-Servlet können Sie einzelne Dokumente nach ihrer docID, ihrem Key oder ihrer UniformItemID durchsuchen.
- By docID: Hier können Sie die docID des gewünschten Dokuments eingeben
- By Key: Hier können Sie den Key des gewünschten Dokuments eingeben
- By UnifomItemID: Hier können Sie die UniformItemID des Dokuments eingeben.
- Output Format: Hier können Sie auswählen in welchem Format das Dokument angezeigt werden soll und welcher Inhalt dargestellt werden soll.
- Deleted documents: Hier können Sie auswählen ob auch gelöschte Dokumente in die Suche miteinbezogen werden sollen.
Find
Mit diesem Index-Servlet können Sie Suchanfragen absenden um nach Dokumenten zu suchen.
- Query: Gibt ähnlich wie im Standard Mindbreeze Suchfenster eine Suchanfrage an. Die Suche ist auf Systemmetadaten (category, categoryinstance, fqcategory, mes:key, datasource/mes:key, url, extension, mes:uniformdocid, mes:date, mes:size, mes:lang, mes:nonfilterable, mes:filteredbymetadataonly, store:modificationdate, store:creationdate) beschränkt.
- Order by: Gibt das Kriterium an, wonach die Dokumente sortiert werden sollen.
- Order Direction: Gibt die Reihenfolge an, in der die Dokumente sortiert werden. Die Dokumente können in aufsteigender oder absteigender Reihenfolge sortiert werden.
- Group by: Gibt an, ob und nach welchem Kriterium die Dokumente gruppiert werden sollen.
- Group by Parent Reference: Ermöglicht das Gruppieren nach Referenzen.
- Group by Parent Reference Mode: Gibt an, wie weit referenziert werden soll.
- Summarize by property: Gibt die Eigenschaften an, wonach Dokumente zusammengefasst werden, wie zum Beispiel Name oder Dateierweiterung.
- Order summarized by: Gibt an, wie die Zusammenfassung sortiert werden soll.
- Order direction: Gibt die Reihenfolge der Sortierung an. Die Zusammenfassung kann in aufsteigender oder absteigender Reihenfolge sortiert werden.
- Output Format: Gibt das Ausgabeformat an, in dem die Ergebnisse angezeigt werden.
- Expand Query: Wenn Expand Query auf false gesetzt (oder nicht bereitgestellt) ist, werden die internen Query Expression Transformers nicht verwendet. Dies kann für die folgenden Anwendungsfälle hilfreich sein:
- Optional Terms ist nur aktiv wenn der interne Term Series to Terms Transformer aktiv ist. Die Option Expand Query auf false zu setzen deaktiviert daher die Option Optional Terms.
- Wenn Natural Language Question Answering (NLQA) deaktiviert ist, werden standardmäßig alle Suchbegriffe automatisch in Ähnlichkeitsausdrücke umgewandelt. Die Option Expand Query auf false zu setzen deaktiviert daher Similarity Search und man kehrt zu einer normalen Stichwortsuche zurück.
- Diacritic Similar Terms: Gibt an, ob bei einer Suche auch Diakritische Einträge miteinbezogen werden. Zum Beispiel wird bei einer Suche nach „moglich“ auch „möglich“ miteinbezogen.
- Requested Properties (CSV): Gibt an, welche spezifischen Dokumenteigenschaften gesucht werden sollen. Wenn mehrere Eigenschaften gesucht werden sollen, müssen die Eigenschaften wie bei einer CSV-Datei durch ein Semikolon getrennt werden.
Statistics
Hier können Sie Statistiken zum aktuellen Index abrufen.
- Detail Level: Hier können Sie den Detailgrad angeben in dem die Statistiken ausgegeben werden sollen.
- Output Format: Hier können Sie das Format angeben in dem die Statistiken ausgegeben werden sollen.
ProcessItems
Eine genaue Anleitung zum Index-Servlet „processitems“ finden Sie in Konfiguration - Metadaten Anreicherung - Privileged Servlets.
Wait
Das Servlet dient als Statusabfrage am Index, insbesondere für Scipts, da die Verbindung zum Servlet aufrechterhalten bleibt bis der Index fertig ist. Die Index-Konfigurationsoption „Wait for Event Servlet Update Status Interval (Seconds)“ bestimmt, in welchen Abständen ein Update gesendet wird. Der Content-Type der Antwort ist „text/event-stream" und wird im Header gesetzt. Der data Teil ist ein JSON formatierter Plain Text, dessen Content „finished“ erst in der letzten Nachricht „true“ wird.
Die Option „totalBucketCount“ gibt die Anzahl der Buckets am Index an. Diese kann steigen, wenn gerade neue Dokumente indiziert werden. Die Optionen „invertingCompleteFraction“, „mergingCompleteFraction“ und „totalCompleteFraction“ geben die Vollständigkeit in Bruchteilen an und werden durch die Multiplikation mit 100 zur Prozentangabe.
Beispiele:
data: {"event":"all_finished","finished":false,"invertingCompleteFraction":0.5,"mergingCompleteFraction":0.5,"totalBucketCount":2,"totalCompleteFraction":0.5}
data: {"event":"all_finished","finished":false,"invertingCompleteFraction":1.0,"mergingCompleteFraction":0.5,"totalBucketCount":2,"totalCompleteFraction":0.5}
data: {"event":"all_finished","finished":true,"invertingCompleteFraction":1.0,"mergingCompleteFraction":1.0,"totalBucketCount":2,"totalCompleteFraction":1.0}
Folgende URL-Parameter können verwendet werden:
- event: Schränkt ein worauf der Index warten soll. Die Werte all_finished und inverting_finished sind gültig:
- inverting_finished: wartet nur auf die Invertierung.
- all_finished: wartet auf Invertierung und Merging.
- update_interval: Setzt eine Zeitüberschreitung nach dem spätestens ein Update geschrieben wird. Wenn dieser Parameter nicht gesetzt ist, wird auf das „Wait for Event Servlet Update Status Interval (Seconds)“ aus der Index Konfiguration zurückgegriffen. Das minimale Interval ist 5 Sekunden.
- Hinweis: Die Abfrage ist nicht Laufzeitintensiv, allerdings müssen Threads synchronisiert werden (Lock mutex), daher wird empfohlen diese Option so hoch wie möglich einzustellen.
Siehe auch „Bereich: Inverter Settings“ bei Konfiguration - Mindbreeze InSpire - Registerkarte "Indices".
Index-Status
Das Servlet sendet regelmäßig Informationen über den Indexierungsstatus der Dokumente im Index. Der Inhaltstyp der Antwort ist „text/event-stream“ und wird im Header festgelegt. Der Teil data ist ein JSON-formatierter Plain-Text mit verschiedenen Arten von Nachrichten:
- Die erste Nachricht bei der Verbindung ist eine Zusammenfassung des Indexstatus. Sie enthält ein Feld namens „index“, dessen Wert eine Liste von Buckets mit Informationen über die darin gespeicherten Dokumente ist.
- Wenn neue Dokumente invertiert werden, wird eine Nachricht ausgegeben. Sie enthält ein Feld namens „item“, dessen Wert ein Feld namens „itemHeaders“ enthält, dessen Wert eine Liste neu indexierter Dokumente ist (mit key, category, category instance und document ID).
Die Nachrichten melden auch den Status der Elemente, derzeit wird nur „searchable“ unterstützt.
Da das Servlet geöffnet bleiben muss, um die Nachrichten zu empfangen, werden die Nachrichten außerdem nach einer gewissen Zeit der Inaktivität automatisch gesendet. Die Standard-Zeitüberschreitung hierfür beträgt 20 Sekunden und kann mit dem URL-Parameter idle_event_timeout_ms konfiguriert werden.
Beispiel:
data: {"statusLevel":"LEVEL_SEARCHABLE","index":{"bucketStatus":[{"bucketId":"0","firstSequenceNr":"0","lastSequenceNr":"50","itemCount":"50","isCurrentBucket":true}]},"statusCode":"OK"}
data: {"statusLevel":"LEVEL_SEARCHABLE","item":{"itemHeaders":[{"category":"Web","categoryInstance":"webtest","key":"https://www.mindbreeze.com/omicron-webinar-3","sequenceNr":"52"}]}}
data: {"statusLevel":"LEVEL_SEARCHABLE","item":{"itemHeaders":[{"category":"Web","categoryInstance":"webtest","key":"https://www.mindbreeze.com/reference-csc.html","sequenceNr":"54"},{"category":"Web","categoryInstance":"webtest","key":"https://www.mindbreeze.com/egovernment.html","sequenceNr":"56"}]}}
data: {"statusLevel":"LEVEL_SEARCHABLE","idle":{"waitForEventTimeoutEllapsedMs":"20000"}}
Das Servlet muss in den Index-Einstellungen aktiviert werden. Siehe auch die Tabelle „Bereich: Inverter Settings“ in Konfiguration - Mindbreeze InSpire - Index Service Einstellungen.