Übersicht
Der Wikipedia-Konnektor bietet die Funktionalität, eine Wikipedia-Dumpdatei zu lesen und ihre Seiten im Fess-Index zu registrieren. Er funktioniert mit den Dumps von Wikipedia, anderen Wikimedia-Projekten und jeder MediaWiki-Site.
Für diese Funktion ist das Plugin fess-ds-wikipedia erforderlich.
Unterstützte Dumps
Der Parameter source wählt das Dumpformat.
source | Beschreibung |
|---|---|
cirrus | Ein CirrusSearch-Indexdump, den Wikimedia für seine Wikis unter |
xml | Ein MediaWiki-XML-Export ( |
auto | Der Standardwert. Ein Speicherort, der cirrus_search_index enthält oder auf .json.bz2 bzw. .json endet, wird als cirrus gelesen; jeder andere als xml |
Die Komprimierung eines Dumps (etwa bzip2 oder gzip) wird anhand seines Inhalts erkannt, und auch eine unkomprimierte Datei kann gelesen werden.
Voraussetzungen
Die Installation des Plugins ist erforderlich
Die Dumpdatei muss erreichbar sein, entweder als HTTP(S)-URL oder als Pfad auf dem Fess-Server
Zeit für den Crawl: Der Dump einer großen Wikipedia umfasst mehrere Gigabyte. Probieren Sie eine Konfiguration zunächst mit
limitaus
Plugin-Installation
Installieren Sie über die Administrationsoberfläche unter „System“ -> „Plugins“ oder führen Sie bin/fess-setup install plugin fess-ds-wikipedia aus und starten Sie Fess neu. Weitere Details finden Sie unter Plug-ins.
Konfiguration
Konfigurieren Sie über die Administrationsoberfläche unter „Crawler“ -> „Datenspeicher“ -> „Neu erstellen“.
Grundeinstellungen
| Einstellung | Beispielwert |
|---|---|
| Name | Japanese Wikipedia |
| Handler-Name | WikipediaDataStore |
| Aktiviert | Ein |
Parameter-Einstellungen
Parameterliste
| Parameter | Erforderlich | Beschreibung |
|---|---|---|
url | Nein | Speicherort des Dumps: eine HTTP(S)-URL, eine |
source | Nein | auto, cirrus oder xml (Standard: auto) |
limit | Nein | Nach dieser Anzahl Seiten anhalten. 0 bedeutet keine Begrenzung (Standard: 0). Damit lässt sich eine Konfiguration an wenigen Seiten ausprobieren |
user_agent | Nein | User-Agent-Header, der beim Herunterladen des Dumps gesendet wird. Ohne Angabe wird der User-Agent-Name des Fess-Crawlers verwendet |
max_digest_length | Nein | Maximale Länge von digest in Zeichen (Standard: 100) |
total_entity_size_limit | Nein | Obergrenze in Bytes für die Gesamtgröße der Entitäten, die der XML-Parser verarbeitet (Standard: 100000000). Gilt nur für source=xml |
text_extractor | Nein | Wie der Wikitext eines XML-Dumps in Klartext umgewandelt wird: sweble (Standard) oder regex. Siehe „Klartext aus XML-Dumps“ |
drop_templates | Nein | Kommagetrennte Vorlagennamen, deren Text aus dem Inhalt eines XML-Dumps entfernt wird, oder * für alle Vorlagen |
keep_templates | Nein | Kommagetrennte Vorlagennamen, deren Text erhalten bleibt, obwohl drop_templates auf sie zutrifft |
drop_captions | Nein | Bild- und Galerieunterschriften aus dem Inhalt eines XML-Dumps entfernen (Standard: false) |
CirrusSearch-Dumps
Ein CirrusSearch-Dump wird als nummerierte Teile veröffentlicht, etwa jawiki_content-20261004-00000.json.bz2. Bei source=cirrus akzeptiert url eine kommagetrennte Liste, deren Einträge jeweils Folgendes sein können:
eine einzelne Datei (eine HTTP(S)-URL oder ein lokaler Pfad)
ein lokales Verzeichnis: Jede Datei darin, deren Name auf
.json.bz2oder.jsonendet, wird in Namensreihenfolge geleseneine HTTP(S)-URL, die auf
/endet: Die Verzeichnisliste wird abgerufen und jede Datei, deren Name auf.json.bz2oder.jsonendet, wird in Namensreihenfolge gelesen
Um zum Beispiel alle Teile des Content-Index der japanischen Wikipedia zu lesen:
Bemerkung
Wikimedia entfernt alte Datumsstände vom Server. Suchen Sie ein vorhandenes Datum in der Liste unter https://dumps.wikimedia.org/other/cirrus_search_index/, bevor Sie den Crawl konfigurieren.
Skript-Einstellungen
Verfügbare Felder
Die folgenden Werte können im Skript referenziert werden.
| Feld | Beschreibung |
|---|---|
id | Seiten-ID |
title | Seitentitel |
encodedTitle | Der Titel in der Form, die in einer MediaWiki-Seiten-URL verwendet wird (Leerzeichen werden zu _, andere Zeichen werden prozentcodiert) |
content | Klartext der Seite |
digest | content, gekürzt auf max_digest_length Zeichen |
contentLength | Länge von content |
wikitext | Wikitext der Seite, sofern der Dump ihn enthält |
format, model | Format und Inhaltsmodell der Seite |
timestamp | Zeitstempel der Seite |
ns | Namensraumnummer |
categories, links | Kategorien der Seite und die Seiten, auf die sie verlinkt |
redirect, redirectTitle | Ob die Seite eine Weiterleitung ist, und ihr Ziel |
stub, disambiguation | Ob die Seite ein Stub ist und ob sie eine Begriffsklärungsseite ist |
lang, host, site, url | Aus dem Speicherort des Dumps abgeleitet. Siehe „Aus dem Speicherort des Dumps abgeleitete Werte“ |
Bei source=cirrus stehen zusätzlich die folgenden Werte zur Verfügung:
| Feld | Beschreibung |
|---|---|
openingText | Der einleitende Text der Seite |
headings | Überschriften |
externalLinks | Externe Links |
templates | Von der Seite verwendete Vorlagen |
redirects | Titel, die auf die Seite weiterleiten |
auxiliaryText | Hilfstext, etwa Bildunterschriften |
weightedTags | Gewichtete Tags |
wikibaseItem | Wikidata-Item-ID |
incomingLinks | Anzahl eingehender Links |
popularityScore | Beliebtheitswert |
revisionId | Revisions-ID |
Aus dem Speicherort des Dumps abgeleitete Werte
lang, host, site und url werden aus dem Namen des Dumps abgeleitet: Ein Name wie jawiki-latest-pages-articles.xml.bz2 oder index_name=jawiki_content ergibt für lang den Wert ja, für host und site ja.wikipedia.org und für url https://ja.wikipedia.org/wiki/<codierter Titel>. Der Name muss den Sprachcode enthalten, unmittelbar gefolgt von wiki und dann -, _ oder .. Schwesterprojekte wie Wikiquote (jawikiquote-...) werden absichtlich nicht abgeleitet, weil ein falscher Host tote Links erzeugen würde.
Warnung
Passt der Name des Dumps nicht, werden host, site und url nicht gesetzt, und url behält den Wert des Parameters url, also den Speicherort des Dumps. Verwendet das Skript url unverändert, erhält jede Seite dieselbe URL, und der gesamte Crawl landet als ein einziges Dokument im Index, ohne Fehlermeldung. Bei einem umbenannten Dump oder einem anderen Wikimedia-Projekt bauen Sie die URL im Skript zusammen, wie im Beispiel oben, zum Beispiel url="https://ja.wikiquote.org/wiki/" + encodedTitle.
Klartext aus XML-Dumps
Bei source=xml wird der Wikitext mit dem Sweble-Wikitext-Parser in Klartext umgewandelt. Die Namensraumnamen werden aus dem <siteinfo> des Exports gelesen, sodass Bilder und Kategorieangaben in jeder Sprache ([[ファイル:...]], [[Kategorie:...]]) und in Wikis mit eigenen Namensraumnamen erkannt werden. Eine Seite, an der Sweble scheitert, wird stattdessen mit regulären Ausdrücken umgewandelt.
text_extractor=regex verwendet für jede Seite reguläre Ausdrücke. Das ist mehrfach schneller, aber verschachtelte Vorlagen, Tabellen und mehrzeiliges Markup bleiben im Text.
Standardmäßig bleiben der Text jedes Vorlagenarguments (ohne die Parameternamen) und jede Bild- und Galerieunterschrift in content erhalten, damit dieser Text gefunden werden kann. Mit drop_templates, keep_templates und drop_captions lässt sich das filtern:
Vorlagennamen werden so abgeglichen, wie MediaWiki sie auflöst: Der erste Buchstabe ist nicht groß-/kleinschreibungsabhängig, _ entspricht einem Leerzeichen, und das Präfix Template: ist optional. Vorlagen werden nicht expandiert, eine beibehaltene Vorlage liefert also den Text ihrer Argumente und nicht das, was MediaWiki rendern würde. Ein CirrusSearch-Dump enthält bereits den von MediaWiki gerenderten Text, daher gelten diese Parameter nicht für source=cirrus.
Anwendungsbeispiele
Japanische Wikipedia aus einem CirrusSearch-Dump
Parameter:
Skript:
Japanische Wikipedia aus einem XML-Dump, ohne Quellenvorlagen
Parameter:
Das Skript ist dasselbe wie unter „Skript-Einstellungen“.
Ein anderes Wikimedia-Projekt (Wikiquote)
Aus dem Dumpnamen jawikiquote-... werden host und url nicht abgeleitet, bauen Sie sie daher im Skript zusammen.
Skript:
Fehlerbehebung
Es wird nur ein Dokument indexiert
Siehe „Aus dem Speicherort des Dumps abgeleitete Werte“. Prüfen Sie, ob das Skript url für jede Seite setzt.
Der Crawl dauert zu lange
Beginnen Sie mit
limit, um die Konfiguration zu prüfenVerwenden Sie
source=cirrus, bei einem XML-Dumptext_extractor=regexLegen Sie den Dump auf dem Fess-Server ab und geben Sie einen lokalen Pfad an
Wikitext-Markup bleibt im Inhalt
Verwenden Sie einen CirrusSearch-Dump (source=cirrus). Bei source=xml belässt text_extractor=regex verschachtelte Vorlagen, Tabellen und mehrzeiliges Markup im Text, verwenden Sie daher sweble (der Standard).
Der Dump kann nicht gelesen werden
Prüfen Sie, ob URL oder Pfad korrekt sind (das Datum eines CirrusSearch-Dumps kann vom Server entfernt worden sein)
Prüfen Sie bei einer Verzeichnis-URL, ob sie auf
/endet und die Dateien darin auf.json.bz2oder.jsonendenDen genauen Fehler finden Sie im Log
Weiterführende Informationen
Übersicht der Datenspeicher-Konnektoren - Übersicht der Datenspeicher-Konnektoren
Datenspeicher-Crawl - Leitfaden zur Datenspeicher-Konfiguration
Plug-ins - Leitfaden zur Plugin-Verwaltung