Aperçu
Le connecteur Wikipedia fournit la fonctionnalité permettant de lire un fichier de dump Wikipedia et d’enregistrer ses pages dans l’index Fess. Il fonctionne avec les dumps de Wikipedia, d’autres projets Wikimedia et de tout site MediaWiki.
Cette fonctionnalité nécessite le plugin fess-ds-wikipedia.
Dumps pris en charge
Le paramètre source sélectionne le format du dump.
source | Description |
|---|---|
cirrus | Un dump d’index CirrusSearch, que Wikimedia publie pour ses wikis sous |
xml | Un export XML MediaWiki ( |
auto | La valeur par défaut. Un emplacement qui contient cirrus_search_index ou se termine par .json.bz2 ou .json est lu comme cirrus ; tout autre emplacement est lu comme xml |
La compression d’un dump (bzip2 ou gzip, par exemple) est détectée à partir de son contenu, et un fichier non compressé peut également être lu.
Prérequis
L’installation du plugin est requise
Le fichier de dump doit être accessible, sous forme d’URL HTTP(S) ou de chemin sur le serveur Fess
Du temps pour le crawl : le dump d’une grande Wikipedia représente plusieurs gigaoctets. Essayez d’abord une configuration avec
limit
Installation du plugin
Installez depuis l’interface d’administration via « Système » -> « Plugins », ou exécutez bin/fess-setup install plugin fess-ds-wikipedia puis redémarrez Fess. Consultez Plugins pour plus de détails.
Configuration
Configurez depuis l’interface d’administration via « Crawler » -> « Data Store » -> « Nouveau ».
Configuration de base
| Élément | Exemple |
|---|---|
| Nom | Japanese Wikipedia |
| Nom du gestionnaire | WikipediaDataStore |
| Activé | Oui |
Configuration des paramètres
Liste des paramètres
| Paramètre | Requis | Description |
|---|---|---|
url | Non | Emplacement du dump : une URL HTTP(S), une URL |
source | Non | auto, cirrus ou xml (par défaut : auto) |
limit | Non | S’arrêter après ce nombre de pages. 0 signifie aucune limite (par défaut : 0). Utile pour essayer une configuration sur un petit nombre de pages |
user_agent | Non | En-tête User-Agent envoyé lors du téléchargement du dump. S’il n’est pas indiqué, le nom de User-Agent du crawler Fess est utilisé |
max_digest_length | Non | Longueur maximale de digest, en caractères (par défaut : 100) |
total_entity_size_limit | Non | Limite supérieure, en octets, de la taille totale des entités traitées par l’analyseur XML (par défaut : 100000000). S’applique uniquement à source=xml |
text_extractor | Non | Comment le wikitext d’un dump XML est converti en texte brut : sweble (par défaut) ou regex. Voir « Texte brut des dumps XML » |
drop_templates | Non | Noms de modèles, séparés par des virgules, dont le texte est supprimé du contenu d’un dump XML, ou * pour tous les modèles |
keep_templates | Non | Noms de modèles, séparés par des virgules, dont le texte est conservé bien que drop_templates les désigne |
drop_captions | Non | Supprimer les légendes d’images et de galeries du contenu d’un dump XML (par défaut : false) |
Dumps CirrusSearch
Un dump CirrusSearch est publié en fragments numérotés, comme jawiki_content-20261004-00000.json.bz2. Avec source=cirrus, url accepte une liste séparée par des virgules dont chaque entrée peut être :
un fichier unique (une URL HTTP(S) ou un chemin local)
un répertoire local : tous les fichiers qu’il contient dont le nom se termine par
.json.bz2ou.jsonsont lus, dans l’ordre des nomsune URL HTTP(S) qui se termine par
/: le listing du répertoire est récupéré et tous les fichiers dont le nom se termine par.json.bz2ou.jsonsont lus, dans l’ordre des noms
Par exemple, pour lire tous les fragments de l’index de contenu de Wikipedia en japonais :
Note
Wikimedia supprime les anciennes dates du serveur. Cherchez une date existante dans le listing de https://dumps.wikimedia.org/other/cirrus_search_index/ avant de configurer le crawl.
Configuration du script
Champs disponibles
Les valeurs suivantes peuvent être référencées depuis le script.
| Champ | Description |
|---|---|
id | ID de la page |
title | Titre de la page |
encodedTitle | Le titre sous la forme utilisée dans l’URL d’une page MediaWiki (les espaces deviennent _ et les autres caractères sont encodés en pourcentage) |
content | Texte brut de la page |
digest | content abrégé à max_digest_length caractères |
contentLength | Longueur de content |
wikitext | Wikitext de la page, si le dump le contient |
format, model | Format et modèle de contenu de la page |
timestamp | Horodatage de la page |
ns | Numéro de l’espace de noms |
categories, links | Catégories de la page et pages vers lesquelles elle pointe |
redirect, redirectTitle | Si la page est une redirection, et sa cible |
stub, disambiguation | Si la page est une ébauche, et si c’est une page d’homonymie |
lang, host, site, url | Déduits de l’emplacement du dump. Voir « Valeurs déduites de l’emplacement du dump » |
Avec source=cirrus, les valeurs suivantes sont également disponibles :
| Champ | Description |
|---|---|
openingText | Le texte d’ouverture de la page |
headings | Titres de section |
externalLinks | Liens externes |
templates | Modèles utilisés par la page |
redirects | Titres qui redirigent vers la page |
auxiliaryText | Texte auxiliaire, comme les légendes d’images |
weightedTags | Tags pondérés |
wikibaseItem | ID de l’élément Wikidata |
incomingLinks | Nombre de liens entrants |
popularityScore | Score de popularité |
revisionId | ID de la révision |
Valeurs déduites de l’emplacement du dump
lang, host, site et url sont déduits du nom du dump : un nom comme jawiki-latest-pages-articles.xml.bz2 ou index_name=jawiki_content donne lang ja, host et site ja.wikipedia.org et url https://ja.wikipedia.org/wiki/<titre encodé>. Le nom doit contenir le code de langue immédiatement suivi de wiki puis de -, _ ou .. Les projets frères comme Wikiquote (jawikiquote-...) ne sont volontairement pas déduits, car un mauvais hôte produirait des liens morts.
Avertissement
Lorsque le nom du dump ne correspond pas, host, site et url ne sont pas définis, et url conserve la valeur du paramètre url, c’est-à-dire l’emplacement du dump. Si le script utilise url tel quel, toutes les pages obtiennent la même URL et l’ensemble du crawl se retrouve en un seul document dans l’index, sans aucune erreur. Pour un dump renommé ou un autre projet Wikimedia, construisez l’URL dans le script, comme le fait l’exemple ci-dessus, par exemple url="https://ja.wikiquote.org/wiki/" + encodedTitle.
Texte brut des dumps XML
Avec source=xml, le wikitext est converti en texte brut avec l’analyseur de wikitext Sweble. Les noms des espaces de noms sont lus dans le <siteinfo> de l’export, de sorte que les images et les déclarations de catégorie sont reconnues dans n’importe quelle langue ([[ファイル:...]], [[Kategorie:...]]) et dans les wikis ayant leurs propres noms d’espaces de noms. Une page sur laquelle Sweble échoue est convertie avec des expressions régulières.
text_extractor=regex utilise des expressions régulières pour toutes les pages. C’est plusieurs fois plus rapide, mais les modèles imbriqués, les tableaux et le balisage multiligne restent dans le texte.
Par défaut, le texte de chaque argument de modèle (sans les noms de paramètres) et chaque légende d’image et de galerie sont conservés dans content, afin que ce texte puisse être retrouvé. Utilisez drop_templates, keep_templates et drop_captions pour le filtrer :
Les noms de modèles sont comparés comme MediaWiki les résout : la première lettre est insensible à la casse, _ équivaut à une espace, et le préfixe Template: est facultatif. Les modèles ne sont pas développés ; un modèle conservé apporte donc le texte de ses arguments, et non ce que MediaWiki rendrait. Un dump CirrusSearch contient déjà le texte rendu par MediaWiki ; ces paramètres ne s’appliquent donc pas à source=cirrus.
Exemples d’utilisation
Wikipedia en japonais à partir d’un dump CirrusSearch
Paramètres :
Script :
Wikipedia en japonais à partir d’un dump XML, sans les modèles de citation
Paramètres :
Le script est le même que dans « Configuration du script ».
Un autre projet Wikimedia (Wikiquote)
Le nom de dump jawikiquote-... ne permet pas de déduire host et url ; construisez-les donc dans le script.
Script :
Dépannage
Un seul document est indexé
Voir « Valeurs déduites de l’emplacement du dump ». Vérifiez que le script définit url pour chaque page.
Le crawl est trop long
Commencez avec
limitpour confirmer la configurationUtilisez
source=cirrus, outext_extractor=regexpour un dump XMLPlacez le dump sur le serveur Fess et indiquez un chemin local
Du balisage wikitext reste dans le contenu
Utilisez un dump CirrusSearch (source=cirrus). Avec source=xml, text_extractor=regex laisse dans le texte les modèles imbriqués, les tableaux et le balisage multiligne ; utilisez donc sweble (la valeur par défaut).
Le dump ne peut pas être lu
Vérifiez que l’URL ou le chemin est correct (la date d’un dump CirrusSearch a peut-être été supprimée du serveur)
Pour une URL de répertoire, vérifiez qu’elle se termine par
/et que les fichiers qu’elle contient se terminent par.json.bz2ou.jsonConsultez le journal pour connaître l’erreur exacte
Informations de référence
Aperçu des connecteurs DataStore - Aperçu des connecteurs Data Store
Crawl de magasin de données - Guide de configuration Data Store
Plugins - Guide de gestion des plugins