29-11-2011 : Remettre dans le débat politique les principes du Conseil National de la Résistance
17-02-2012 : Pétition pour une protection de l’apiculture et des consommateurs face au lobby des OGM
Logo de mon site
Logo de mon site
Faire un don




Right menu

Logo du site ez.no  Logo XHTML 1.O du W3C  Logo XHTML 1.O du W3C  Site francophone officiel de Firefox
zero papier grâce aux catalogues et promos en ligne de bonial

eZ Publish : moteur de recherche eZ Find 2.6

Table des matières

  1. eZ Publish : moteur de recherche eZ Find 2.6
  2. Quoi de neuf dans eZ Find 2.6 ?
  3. 1 - Prérequis
  4. 2 - Installation
  5. 2.1 - Backend Solr
  6. 3 - Configuration de base
  7. 3.1 - Paramètres de configuration
  8. 3.2 - Indexation de contenus
  9. 3.3 - Mise à jour de l'index de recherche
  10. 4 - Configuration avancée
  11. 4.1 - Pondération Index-Time
  12. 4.2 - Indexation et recherche sur plusieurs sites
  13. 4.3 - La fonction multi-cœur
  14. 4.4 - Archivage
  15. 4.4.1 - Configurer l'archivage
  16. 4.4.2 - Comment utiliser la fonction d'archivage
  17. 5 - Personnalisation
  18. 5.1 - Personnalisation des facettes et de la navigation de type «drill down»
  19. 5.2 - Les fonctions de recherche
  20. 5.3 - La fonction More Like This
  21. 5.4 - Personnalisation des templates de résultats
  22. 5.5 - Pondérer des composants ou les «résultats sponsorisés»
  23. 5.6 - Recherche auto-complétée
  24. 6 - Utilisation
  25. 6.1 - Recherche basique
  26. 6.1.1 - Recherche auto-complétée
  27. 6.2 - Recherche avancée
  28. 6.2.1 - Ajuster la pertinence du classement
  29. 6.2.2 - Trier et filtrer
  30. 6.2.3 - Contenu lié automatiquement ou «More Like This» (Plus à ce sujet)
  31. 6.2.4 - Rechercher de contenu externe
  32. 6.2.5 - Fonctionnalités linguistiques
  33. 6.2.6 - Contrôle orthographique
  34. 7 - Liens

eZ Find 2.6 : Backend Solr

Date de publication: le samedi 26 novembre 2011 à 15h57
Dernière modification: par Pascal BOYER le samedi 26 novembre 2011 à 22h18

05/10/2011 4:32

eZ Find 2.6 uses the Open Source enterprise search server Solr 3.3, which runs on the Lucene Java search library. While the default search function in eZ Publish stores the search index in the database, Solr uses its own highly optimized file for storing its index.
 eZ Find 2.6 utilise le serveur de recherche Solr 3.1, serveur open source basé sur la bibliothèque de recherche Lucene écrite en Java. Alors que le système de recherche proposé par défaut stocke l'index de recherche dans la base de données, Solr utilise quant à lui un fichier hautement optimisé pour le stocker.

Solr handles the indexing and searching with an eZ Publish-specific set of configuration files. While indexing, eZ Find uses this specific configuration to do index and query-time analysis of text and keywords. When users perform searches, eZ Find generates a Solr search query based on the user input that is submitted to the Solr back end. All communication with Solr is done via Web services (using the REST model).
Solr gère l'indexation et la recherche par l'entremise d'un ensemble de fichiers de configuration spécifiques à eZ Publish. Lors de la phase d'indexation, eZ Find utilise cette configuration particulière pour réaliser l'analyse de l'index et des temps de requêtes du texte et des mots clef. Lorsque des utilisateurs lancent une recherche, eZ Find génère une requête de recherche Solr en se basant sur la saisie soumise, par un utilisateur, au back end Solr. Toute communication avec ce dernier s'effectue via des services Web (qui utilisent le modèle REST )

Solr Index location / Emplacement de l'index Solr

Solr will store the search index according to the directives in the configuration file. You can easily change the index path for your installation as follows:
Solr stocke l'index de recherche à l'emplacement défini par les paramètres du fichier de configuration. On peut facilement modifier cet emplacement comme ceci:

Go to extension/ezfind/java/solr/conf/solrconfig.xml in your eZ Publish folder and locate
Éditer le fichier extension/ezfind/java/solr/conf/solrconfig.xml puis rechercher cette ligne:

<dataDir>${solr.data.dir:/ezfind/java/solr/data}</dataDir>

Here you can change the input to match your preferred location. But make sure the permissions are set correctly.
dont on peut remplacer le contenu pour un emplacement de son choix tout en prenant garde à conserver des permissions d'accès correctes.

Start Solr / Démarrer Solr

You can start Solr direct or as a service.
Il existe deux méthodes pour démarrer Solr: directement ou en tant que service

Direct / Directement

To start Solr, navigate to your eZ Publish extension/ezfind/java directory and run the command:
Se placer dans le répertoire extension/ezfind/java puis exécuter cette commande:

java -Dezfind -jar start.jar

If the Java process dies during indexing or searching, the memory limit (“heap space”) need to be increased. Specify as follows the heap space as start-up parameters to allocate a heap space of 512 MB:
Si le processus Java meurt au cours de l'indexation ou de la recherche, alors la limite mémoire («heap space») doit être augmenter. Pour cela, définir, comme indiqué si-dessous, la valeur du heap space à 512 méga bits en tant que paramètre de démarrage:

java -Dezfind -Xms512M -Xmx512M -jar start.jar

The “-Dezfind” option makes it easier to identify the eZ Find Java process. Make sure the user executing the Java program has write access to the folders extension/ezfind/java/solr/data and extension/ezfind/java/logs).
L'option -Dezfind facilite l'identification du processus Java eZ Find. Assurez-vous que l'utilisateur exécutant le programme Java ait le droit d'accès en écriture sur les dossiers extension/ezfind/java/solr/data et extension/ezfind/java/logs.

This will start the Solr application in the bundled servlet container (Jetty). This application must be running for the indexing and search operations to work. If you are working directly on the web server, you can verify that Solr is running by accessing the URL http://localhost:8983/solr/admin/, or replace “localhost” in the URL with the IP address of the server.
La commande ci-dessus démarre l'application Solr dans un conteneur de servlet ( Jetty ). Cette application doit tourner pour que l'indexation et les opérations de recherche fonctionnent. Si on travaille directement sur le serveur web, on peut alors vérifier que Solr est bien en fonctionnement en accédant à l'URI http://localhost:8983/solr/admin/ ou en remplaçant dans l'URI localhost par l'adresse IP du serveur.

As a Service / En tant que service

eZ Find provides scripts for running eZ Find as a service on Linux platforms. The platforms supported are Debian and RedHat based distributions.
eZ Find fournit un script d'exécution en mode service pour les plates-formes Linux dont les distributions supportées sont Debian et Red-Hat.

  • Redhat based Systems
    Pour les distributions de type Red-Hat

Copy the file extension/ezfind/bin/scripts/redhat/solr to your /etc/init.d folder. Then edit the file and configure the required variables:
Copier, dans un premier temps, le fichier extension/ezfind/bin/scripts/redhat/solr dans le répertoire /etc/init.d/ puis l'éditer pour y configurer les variables idoines:

SOLR_HOME

Set this variable to the Java folder of the ezfind extension you want to run as a service.
Example: SOLR_HOME=/var/www/ezpublish/extension/ezfind/java
La valeur de cette variable doit contenir le chemin du répertoire Java de l'extension ezfind si l'on souhaite la démarrer en mode service.
Exemple: SOLR_HOME=/var/www/ezpublish/extension/ezfind/java

JAVA_HOME

If your java executable is not located in /usr/bin/java or /usr/local/bin/java and the JAVA_HOME environment variable is not set, you can specify the path to your java folder here.
Example: JAVA_HOME=/path/to/javafolder
Si le binaire java ne se situe pas dans les répertoires /usr/bin/java ou /usr/local/bin/java et que la variable d'environnement JAVA_HOME n'est pas définie, alors on peut définir ici le chemin vers le répertoire java.
Exemple: JAVA_HOME=/path/to/javafolder

  • Debian based systems 
    Pour les distributions de type Debian

Copy the file extension/ezfind/bin/scripts/debian/solr to your /etc/init.d folder. You can then use update-rc.d to set solr as auto-start in the required run levels with the command:
Copier, dans un premier temps, le fichier extension/ezfind/bin/scripts/redhat/solr dans le répertoire /etc/init.d/ puis utiliser la commande update-rc comme indiqué ci-dessous pour associer le démarrage automatique de Solr au niveau d'exécution souhaité:

$ update-rc.d solr defaults

Finally, edit the file and configure the required variables:
On édite enfin le fichier pour y configurer les variables:

SOLR_HOME

Set this variable to the java folder of the eZ Find extension you want to run as a service.
Example: SOLR_HOME=/var/www/ezpublish/extension/ezfind/java.
La valeur de cette variable doit contenir le chemin du répertoire Java de l'extension ezfind si l'on souhaite la démarrer en mode service.
Exemple: SOLR_HOME=/var/www/ezpublish/extension/ezfind/java

For use by high performance and large sites / Utilisation avec des sites importants et très performants

For large volumes and traffic (search takes about 30% of ez.no page requests), you will need to set up Solr in a similar way as the database engine (64 bit OS, 64 bit application/service).
Just like MySQL needs to scale up its InnoDB pool size beyond 2GB, so does eZ Find/Solr, although it usually works fine with less RAM. It is all about adjusting Java VM parameters.
If you don't have a 64 bit OS for your server, try the following:
Pour les sites à fort volume et fort trafic (sur ez.no, les recherches représentent environ 30% des requêtes) vous devrez configurer Solr de manière similaire au moteur de la base de données (OS 64 bits, applications/services 64 bits).
À l'instar de MySQL qui doit adapter la taille de son pool InnoDB au delà de 2GB, eZ Find/Solr se comporte à l'identique, quand bien même il fonctionne très bien avec peu de mémoire. Il s'agit donc d'ajuster les paramètres Java VM.
Pour les serveurs fonctionnant sur un OS 32 bits, essayer ce qui suit:

java -server -Xmx600m -Xms600m -XX:+UseParallelGC -XX:+AggressiveOpts -XX:NewRatio=5 -jar start.jar

If you do have a 64 bit OS, use a 64 bit Sun JRE (1.5 for Linux, 1.6 for Solaris/Windows/Mac OS X) as follows:
Pour les OS 64 bits, il faut bien sûr utiliser, comme suit, une version 64 bits de JRE (1.5 pour Linux, 1.6 pour Solaris/Windows/Mac OS X):

java -server -d64 -Xmx600m -Xms600m -XX:+UseParallelGC -XX:+AggressiveOpts -XX:NewRatio=5 -jar start.jar

SearchHandler / Gestionnaire de recherche

The default search handler can be configured by default in ezfind.ini or specified with the dedicated eZ Find template search function. The default search handler is heuristic, but all options are listed below:
Le gestionnaire de recherche par défaut peut être configuré à partir du fichier ezfind.ini ou défini par une fonction de recherche dédiée. Ce gestionnaire de recherche est heuristique et toutes ses options sont listées ci-dessous:

Setting
Paramètre
Description
standard The Solr standard handler is called with all syntax supported, searching is done against all searchable fields
Le gestionnaire standard de Solr est appelé avec toutes les syntaxes supportées, la recherche étant réalisée dans tous les champs pour lesquels la recherche est autorisée.
simplestandard the Solr standard handler is called with all all syntax supported, searching is done against the aggregated field ezf_df_text
Le gestionnaire standard de Solr est appelé avec toutes les syntaxes supportées, la recherche étant réalisée dans le champ agrégé ezf_df_text
ezpublish the recommended handler (Solr dismax based) for typical user searches using keywords without Boolean or other operators (prefixes + and – are supported)
Le gestionnaire recommandé (basé sur Solr dismax) pour les recherches normales utilisant des mots clef sans booléen ni opérateurs (les préfixes + et - sont supportés)
heuristic depending on the presence of special characters indicating Boolean, wildcard or fuzzy expressions, either the simple standard or dismax handler is called
En fonction de la présence de caractères spéciaux révélant l'existence de Booléens, de caractères génériques ou d'expressions floues, soit le gestionnaire standard simple soit le gestionnaire dismax sera appelé.

Commentaires