Apercu
Le connecteur Elasticsearch/OpenSearch fournit la fonctionnalite permettant de recuperer des donnees a partir d’un cluster Elasticsearch ou OpenSearch et de les enregistrer dans l’index Fess.
Cette fonctionnalite necessite le plugin fess-ds-elasticsearch.
Versions prises en charge
Elasticsearch 7.x / 8.x
OpenSearch 1.x / 2.x
Prerequis
L’installation du plugin est requise
L’acces en lecture au cluster Elasticsearch/OpenSearch est necessaire
Les droits d’execution de requetes sont necessaires
Installation du plugin
Methode 1 : Placement direct du fichier JAR
Methode 2 : Installation depuis l’interface d’administration
Ouvrir « Systeme » -> « Plugins »
Telecharger le fichier JAR
Redemarrer Fess
Configuration
Configurez depuis l’interface d’administration via « Crawler » -> « Data Store » -> « Nouveau ».
Configuration de base
| Element | Exemple |
|---|---|
| Nom | External Elasticsearch |
| Nom du gestionnaire | ElasticsearchDataStore |
| Active | Oui |
Configuration des parametres
Connexion de base :
Connexion avec authentification :
Configuration multi-hotes :
Liste des parametres
| Parametre | Requis | Description |
|---|---|---|
settings.fesen.http.url | Oui | Hotes Elasticsearch/OpenSearch (plusieurs hotes separes par des virgules) |
index | Oui | Nom de l’index cible |
settings.fesen.username | Non | Nom d’utilisateur pour l’authentification |
settings.fesen.password | Non | Mot de passe pour l’authentification |
size | Non | Nombre d’elements recuperes lors du scroll (par defaut : 100) |
scroll | Non | Timeout du scroll (par defaut : 1m) |
query | Non | JSON de requete (par defaut : match_all) |
fields | Non | Champs a recuperer (separes par des virgules) |
Configuration du script
Mapping de base :
Acces aux champs imbriques :
Champs disponibles
data.<field_name>- Champ du document Elasticsearchdata._id- ID du documentdata._index- Nom de l’indexdata._type- Type de document (Elasticsearch < 7)data._score- Score de recherche
Configuration des requetes
Recuperation de tous les documents
Par defaut, tous les documents sont recuperes. Si le parametre query n’est pas specifie, match_all est utilise.
Filtrage par conditions specifiques
Specification de plage :
Conditions multiples :
Specification de tri :
Recuperation de champs specifiques uniquement
Limitation des champs avec le parametre fields
Pour recuperer tous les champs, ne specifiez pas fields ou laissez-le vide.
Exemples d’utilisation
Crawl d’un index de base
Parametres :
Script :
Crawl d’un cluster avec authentification
Parametres :
Script :
Crawl de plusieurs index
Parametres :
Script :
Crawl d’un cluster OpenSearch
Parametres :
Script :
Crawl avec limitation de champs
Parametres :
Script :
Repartition de charge multi-hotes
Parametres :
Script :
Depannage
Erreur de connexion
Symptome : Connection refused ou No route to host
Points a verifier :
Verifier si l’URL de l’hote est correcte (protocole, nom d’hote, port)
Verifier si Elasticsearch/OpenSearch est en cours d’execution
Verifier les parametres du pare-feu
Pour HTTPS, verifier si le certificat est valide
Erreur d’authentification
Symptome : 401 Unauthorized ou 403 Forbidden
Points a verifier :
Verifier si le nom d’utilisateur et le mot de passe sont corrects
Verifier si l’utilisateur a les droits appropries :
Droits de lecture sur l’index
Droits d’utilisation de l’API scroll
Si Elasticsearch Security (X-Pack) est active, verifier la configuration
Index introuvable
Symptome : index_not_found_exception
Points a verifier :
Verifier si le nom de l’index est correct (incluant la casse)
Verifier si l’index existe :
Verifier si le pattern wildcard est correct (ex:
logs-*)
Erreur de requete
Symptome : parsing_exception ou search_phase_execution_exception
Points a verifier :
Verifier si le JSON de la requete est correct
Verifier si la requete est compatible avec la version d’Elasticsearch/OpenSearch
Verifier si les noms de champs sont corrects
Tester la requete directement sur Elasticsearch/OpenSearch :
Timeout du scroll
Symptome : No search context found ou Scroll timeout
Solution :
Augmenter
scroll:Reduire
size:Verifier les ressources du cluster
Crawl de donnees volumineuses
Symptome : Le crawl est lent ou expire
Solution :
Ajuster
size(trop grand le ralentit) :Limiter les champs recuperes avec
fieldsFiltrer les documents necessaires avec
queryDiviser en plusieurs data stores (par index, par periode, etc.)
Memoire insuffisante
Symptome : OutOfMemoryError
Solution :
Reduire
sizeLimiter les champs recuperes avec
fieldsAugmenter la taille du tas de Fess
Exclure les champs volumineux (donnees binaires, etc.)
Connexion SSL/TLS
Cas de certificat auto-signe
Avertissement
Utilisez des certificats signes de maniere appropriee en environnement de production.
Pour utiliser des certificats auto-signes, ajoutez le certificat au keystore Java :
Authentification par certificat client
Si un certificat client est necessaire, des parametres supplementaires sont requis. Consultez la documentation du client Elasticsearch pour plus de details.
Exemples de requetes avancees
Requete avec agregation
Note
Les resultats d’agregation ne sont pas recuperes, seuls les documents sont recuperes.
Champs de script
Script :
Informations de reference
Apercu des connecteurs DataStore - Apercu des connecteurs Data Store
Connecteur base de donnees - Connecteur de base de donnees
Présentation - Guide de configuration Data Store