Problèmes SQL de la recherche avancée sur Joomla : Différence entre versions

De Vulgum Techus
Aller à : Navigation, rechercher
(Articles Vulgum Techus)
Ligne 1 : Ligne 1 :
 +
<!-- Links checked 11/04/19 -->
 
[[Catégorie:Joomla]]
 
[[Catégorie:Joomla]]
  '''[[Lien court]]''' vers cette page : http://vt.cx/PraJ
+
  '''[[Lien court]]''' vers cette page : https://vt.cx/PraJ
  '''[[QR code]]''' vers cette page : http://vt.cx/PraJ.qr
+
  '''[[QR code]]''' vers cette page : https://vt.cx/PraJ.qr
 
<html>
 
<html>
<script type="text/javascript"><!--
+
<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
google_ad_client = "ca-pub-3341840374417340";
+
<!-- VT2 -->
/* VT2 */
+
<ins class="adsbygoogle"
google_ad_slot = "6349432125";
+
    style="display:inline-block;width:468px;height:60px"
google_ad_width = 468;
+
    data-ad-client="ca-pub-3341840374417340"
google_ad_height = 60;
+
    data-ad-slot="6349432125"></ins>
//-->
+
<script>
</script>
+
(adsbygoogle = window.adsbygoogle || []).push({});
<script type="text/javascript"
+
src="//pagead2.googlesyndication.com/pagead/show_ads.js">
+
 
</script>
 
</script>
 
</html>
 
</html>
 
<br/>
 
<br/>
 
[[Versions Joomla]] 2.5 & 3.x
 
[[Versions Joomla]] 2.5 & 3.x
 +
<br/>
  
 
= Mots-clé =
 
= Mots-clé =
Ligne 25 : Ligne 25 :
  
 
= Présentation =
 
= Présentation =
La '''recherche avancée (Smart Search)''' est une nouveauté depuis la version '''1.7''' de '''[[Joomla]]'''. Elle permet une '''indexation''' de tout le contenu du site afin d'offrir à ses visiteurs une option de '''recherche''' beaucoup plus performante qu'avec celle de base. Pour être opérationnelle la '''recherche avancée''' nécessite que le plugin '''Contenu - Indexation de recherche''' soit activé. L''''indexation''', quant à elle, se fait au fur et à mesure des mises à jour du contenu ou d'une manière globale en passant par le composant '''Recherche avancée'''. Dans certains cas, le fichier '''index''' est corrompu et affiche lors de la demande d'indexation via le '''composant''', un message équivalent à celui-ci :
+
La '''recherche avancée (Smart Search)''' est une nouveauté depuis la version 1.7 de '''[[Joomla]]'''. Elle permet une indexation de tout le contenu du site afin d'offrir à ses visiteurs une option de recherche beaucoup plus performante qu'avec celle de base. Pour être opérationnelle la recherche avancée nécessite que le plugin '''Contenu - Indexation de recherche''' soit activé. L'indexation, quant à elle, se fait au fur et à mesure des mises à jour du contenu ou d'une manière globale en passant par le composant Recherche avancée. Dans certains cas, le fichier index est corrompu et affiche lors de la demande d'indexation via le composant, un message équivalent à celui-ci :
 
  You have an error in your SQL syntax; check the manual that corresponds to your [[MySQL]] server version for the right syntax to use near '' at line 1  
 
  You have an error in your SQL syntax; check the manual that corresponds to your [[MySQL]] server version for the right syntax to use near '' at line 1  
 
Dans ces cas là, la meilleure solution reste de '''purger l'index''' et de le reconstituer comme expliqué ici :
 
Dans ces cas là, la meilleure solution reste de '''purger l'index''' et de le reconstituer comme expliqué ici :
  
 
= Effacement de l'index global =
 
= Effacement de l'index global =
La '''réindexation''' ne fait qu'ajouter à l''''index global''' les données ajoutées depuis la dernière '''indexation'''. Pour refaire l'intégralité de l''''indexation''' il faut purger l''''index global'''. Pour ce faire deux méthodes sont disponibles. Leurs effets sur les '''filtres de recherche statiques''', éventuellement définis au niveau de la '''Gestion des filtres de recherche''', ne sont pas les mêmes :
+
La réindexation ajoute à l'index global les données mémorisées depuis la dernière indexation. Pour refaire l'intégralité de l'indexation il faut purger l'index global. Pour ce faire deux méthodes sont disponibles. Leurs effets sur les '''filtres de recherche statiques''', éventuellement définis au niveau de la '''Gestion des filtres de recherche''', ne sont pas les mêmes :
 +
 
 
== Méthode 1 - via le back office ==
 
== Méthode 1 - via le back office ==
 
Cette méthode supprime aussi les '''filtres de recherche statiques''' qui auraient été éventuellement définis au niveau de la '''Gestion des filtres de recherche'''
 
Cette méthode supprime aussi les '''filtres de recherche statiques''' qui auraient été éventuellement définis au niveau de la '''Gestion des filtres de recherche'''
Ligne 37 : Ligne 38 :
 
== Méthode 2 - Ligne de commande ==
 
== Méthode 2 - Ligne de commande ==
 
Cette méthode conserve les '''filtres de recherche statiques''' qui auraient été éventuellement définis au niveau de la '''Gestion des filtres de recherche'''
 
Cette méthode conserve les '''filtres de recherche statiques''' qui auraient été éventuellement définis au niveau de la '''Gestion des filtres de recherche'''
* Se connecter en '''root''' et '''[[ssh]]'''
+
* Se connecter en root et '''[[ssh]]'''
 
* Naviguer jusqu'au répertoire /cli du site
 
* Naviguer jusqu'au répertoire /cli du site
 
* Lancer la purge avec la commande :
 
* Lancer la purge avec la commande :
Ligne 43 : Ligne 44 :
  
 
= Indexation et réindexation globale =
 
= Indexation et réindexation globale =
L''''indexation''' et la '''réindexation''' peuvent se faire de deux manières :
+
L'indexation et la réindexation peuvent se faire de deux manières :
# Dans le '''back office''' du '''[[site]]''' -> pas recommandé sur les gros '''[[sites]]''' avec risque de '''timeout'''
+
# Dans le back office du site -> pas recommandé sur les gros sites avec risque de timeout
# En ligne de commande sur le '''[[serveur]]''' -> recommandé pour tout type de '''[[sites]]''' et particulièrement ceux avec un gros contenu
+
# En ligne de commande sur le '''[[serveur]]''' -> recommandé pour tout type de 'sites et particulièrement ceux avec un gros contenu
  
 
== Indexation et réindexation via le back office ==
 
== Indexation et réindexation via le back office ==
 
* Dans '''Recherche avancée''' cliquer sur '''Indexer'''
 
* Dans '''Recherche avancée''' cliquer sur '''Indexer'''
* Une fenêtre s'ouvre alors avec une jauge de progression et le message '''Indexation en cours...'''. La fermer interrompt le processus d''''indexation'''
+
* Une fenêtre s'ouvre alors avec une jauge de progression et le message '''Indexation en cours...'''. La fermer interrompt le processus d'indexation
 
* Sur une contenu important, l''''indexation''' peut être assez, voire très longue
 
* Sur une contenu important, l''''indexation''' peut être assez, voire très longue
* En cas de blocage ne pas hésiter à interrompre l''''indexation''' en fermant la fenêtre '''Indexation en cours...''' puis à relancer l'indexation
+
* En cas de blocage ne pas hésiter à interrompre l'indexation en fermant la fenêtre '''Indexation en cours...''' puis à relancer l'indexation
  
 
== Indexation et réindexation via le [[serveur]] ==
 
== Indexation et réindexation via le [[serveur]] ==
Cette méthode utilise une '''commande en ligne''' via l'interface '''CLI (Command Line Interface)'''. Les temps indiqués pendant le traitement sont différents s'il s'agit d'une indexation ou d'une '''réindexation'''. Dans le cas d'une première indexation les temps de traitement peuvent être très longs (ex. '''800 secondes''' par lot).
+
Cette méthode utilise une commande en ligne via l'interface CLI (Command Line Interface). Les temps indiqués pendant le traitement sont différents s'il s'agit d'une indexation ou d'une réindexation. Dans le cas d'une première indexation les temps de traitement peuvent être très longs (ex. 800 secondes par lot).
* Se connecter au '''[[serveur]]''' en '''SSH'''
+
* Se connecter au serveur en SSH
* Se mettre dans le '''répertoire CLI''' du '''[[site]]'''. Il doit contenir '''php_finder_indexer.php'''
+
* Se mettre dans le répertoire CLI du site. Il doit contenir '''php_finder_indexer.php'''
* Lancer l''''indexation''' par :  
+
* Lancer l'indexation par :  
 
  php finder_indexer.php
 
  php finder_indexer.php
* Le traitement par lot démarre. Il peut être interrompu et repris à tout moment. Les messages au lancement et en cours d''''indexation''' sont décrit dans l'exemple qui suit et qui illustre une '''réindexation''' (temps courts) d'un petit '''[[site]]''' ('''4 lots''' seulement) :
+
* Le traitement par lot démarre. Il peut être interrompu et repris à tout moment. Les messages au lancement et en cours d''''indexation''' sont décrit dans l'exemple qui suit et qui illustre une réindexation (temps courts) d'un petit site (4 lots seulement) :
 
  Version Anglaise :
 
  Version Anglaise :
 
   
 
   
Ligne 89 : Ligne 90 :
  
 
= Tables concernées par la recherche avancée =
 
= Tables concernées par la recherche avancée =
* Dans la '''[[base de données]]''' du site indexé les tables impliquées - (indexées avec le moteur '''InnoDB''') sont :
+
* Dans la '''[[base de données]]''' du site indexé les tables impliquées - (indexées avec le moteur InnoDB) sont :
 
** _finder_filters
 
** _finder_filters
 
** _finder_links
 
** _finder_links
Ligne 118 : Ligne 119 :
  
 
= Messages particuliers =
 
= Messages particuliers =
* '''Simple Wiki Linker Plugin v1.7.0 is activated!''' -> le plugin '''Simple Wiki Linker''' qui permet de créer des liens directs vers '''[[Wikipedia]]''' est installé  
+
* '''Simple Wiki Linker Plugin v1.7.0 is activated!''' -> le plugin Simple Wiki Linker qui permet de créer des liens directs vers '''[[Wikipedia]]''' est installé  
  
 
= Liens utiles =
 
= Liens utiles =
* [http://help.joomla.fr/3/index.php/composants/recherche-avancee/178-recherche-avancee-filtres-de-recherche help.joomla.fr] Composants - Recherche avancée sur '''J!Aide'''
+
* [https://help.joomla.fr/3/index.php/composants/recherche-avancee/178-recherche-avancee-filtres-de-recherche help.joomla.fr] Composants - Recherche avancée sur J!Aide
* [https://docs.joomla.org/Setting_up_automatic_Smart_Search_indexing docs.joomla.org] Setting up automatic '''Smart Search indexing'''
+
* [https://docs.joomla.org/Setting_up_automatic_Smart_Search_indexing docs.joomla.org] Setting up automatic Smart Search indexing
* [https://docs.joomla.org/Smart_Search_on_large_sites docs.joomla.org] '''Smart Search''' on large '''[[sites]]'''
+
* [https://docs.joomla.org/Smart_Search_on_large_sites docs.joomla.org] '''Smart Search''' on large sites
* [https://docs.joomla.org/Category:Smart_Search docs.joomla.org] Tous les articles relatifs à '''Smart Search''' sur '''[[Joomla]] Docs'''
+
* [https://docs.joomla.org/Category:Smart_Search docs.joomla.org] Tous les articles relatifs à Smart Search sur Joomla Docs
* [https://www.iteachme.com/Joomla-3/search-vs-smart-search.html iteachme.com] '''Search''' vs. '''Smart Search''' - What is the Difference and How Does it Work?
+
* [https://www.iteachme.com/Joomla-3/search-vs-smart-search.html iteachme.com] Search vs. Smart Search - What is the Difference and How Does it Work?
  
 
= Threads d'intérêt =
 
= Threads d'intérêt =
* [http://www.chronoengine.com/forums/posts/f26/t88297.html chronoengine.com] '''ChronoForms 4''' stops '''[[Joomla]] Smartseach''' from '''indexing content'''
+
* [https://www.chronoengine.com/forums/posts/f26/t88297.html chronoengine.com] ChronoForms 4 stops Joomla Smartseach from indexing content
  
 
= Articles [[Vulgum Techus]] =
 
= Articles [[Vulgum Techus]] =

Version du 11 avril 2019 à 13:11

Lien court vers cette page : https://vt.cx/PraJ
QR code vers cette page : https://vt.cx/PraJ.qr


Versions Joomla 2.5 & 3.x

Mots-clé

Présentation

La recherche avancée (Smart Search) est une nouveauté depuis la version 1.7 de Joomla. Elle permet une indexation de tout le contenu du site afin d'offrir à ses visiteurs une option de recherche beaucoup plus performante qu'avec celle de base. Pour être opérationnelle la recherche avancée nécessite que le plugin Contenu - Indexation de recherche soit activé. L'indexation, quant à elle, se fait au fur et à mesure des mises à jour du contenu ou d'une manière globale en passant par le composant Recherche avancée. Dans certains cas, le fichier index est corrompu et affiche lors de la demande d'indexation via le composant, un message équivalent à celui-ci :

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near  at line 1 

Dans ces cas là, la meilleure solution reste de purger l'index et de le reconstituer comme expliqué ici :

Effacement de l'index global

La réindexation ajoute à l'index global les données mémorisées depuis la dernière indexation. Pour refaire l'intégralité de l'indexation il faut purger l'index global. Pour ce faire deux méthodes sont disponibles. Leurs effets sur les filtres de recherche statiques, éventuellement définis au niveau de la Gestion des filtres de recherche, ne sont pas les mêmes :

Méthode 1 - via le back office

Cette méthode supprime aussi les filtres de recherche statiques qui auraient été éventuellement définis au niveau de la Gestion des filtres de recherche

  • Choisir Recherche avancée dans Composants
  • Cliquer sur Purger pour vider l'Index

Méthode 2 - Ligne de commande

Cette méthode conserve les filtres de recherche statiques qui auraient été éventuellement définis au niveau de la Gestion des filtres de recherche

  • Se connecter en root et ssh
  • Naviguer jusqu'au répertoire /cli du site
  • Lancer la purge avec la commande :
php finder_indexer.php --purge

Indexation et réindexation globale

L'indexation et la réindexation peuvent se faire de deux manières :

  1. Dans le back office du site -> pas recommandé sur les gros sites avec risque de timeout
  2. En ligne de commande sur le serveur -> recommandé pour tout type de 'sites et particulièrement ceux avec un gros contenu

Indexation et réindexation via le back office

  • Dans Recherche avancée cliquer sur Indexer
  • Une fenêtre s'ouvre alors avec une jauge de progression et le message Indexation en cours.... La fermer interrompt le processus d'indexation
  • Sur une contenu important, l'indexation peut être assez, voire très longue
  • En cas de blocage ne pas hésiter à interrompre l'indexation en fermant la fenêtre Indexation en cours... puis à relancer l'indexation

Indexation et réindexation via le serveur

Cette méthode utilise une commande en ligne via l'interface CLI (Command Line Interface). Les temps indiqués pendant le traitement sont différents s'il s'agit d'une indexation ou d'une réindexation. Dans le cas d'une première indexation les temps de traitement peuvent être très longs (ex. 800 secondes par lot).

  • Se connecter au serveur en SSH
  • Se mettre dans le répertoire CLI du site. Il doit contenir php_finder_indexer.php
  • Lancer l'indexation par :
php finder_indexer.php
  • Le traitement par lot démarre. Il peut être interrompu et repris à tout moment. Les messages au lancement et en cours d'indexation sont décrit dans l'exemple qui suit et qui illustre une réindexation (temps courts) d'un petit site (4 lots seulement) :
Version Anglaise :

Smart Search INDEXER
============================
Starting Indexer
Setting up Finder plugins
Setup 154 items in 0.094 seconds.
* Processed batch 1 in 0.213 seconds.
* Processed batch 2 in 0.182 seconds.
* Processed batch 3 in 0.177 seconds.
* Processed batch 4 in 0.009 seconds.
Total Processing Time: 0.676 seconds.

Version française :

INDEXEUR de recherche avancée
============================
Indexer à partir de
Paramètrage des plug-ins de recherche
154 éléments paramétrés en 0.094 secondes.
* 1 lot traité en 0.213 seconds.
* 2 lot traité en 0.182 seconds.
* 3 lot traité en 0.177 seconds.
* 4 lot traité en 0.009 seconds.
Temps de traitement total : 0.676 secondes
  • Compte tenu de la mobilisation des ressources pour cette tâche, il peut être intéressant de la programmer à des heures de faible audience via cron

Tables concernées par la recherche avancée

  • Dans la base de données du site indexé les tables impliquées - (indexées avec le moteur InnoDB) sont :
    • _finder_filters
    • _finder_links
    • _finder_links_terms (où d'autres terms suivi d'un numéro d'ordre alphanumérique 0 à 9, a à z, etc.) comme ci-dessous
      • _finder_links_terms0
      • _finder_links_terms1
      • _finder_links_terms2
      • _finder_links_terms3
      • _finder_links_terms4
      • _finder_links_terms5
      • _finder_links_terms6
      • _finder_links_terms7
      • _finder_links_terms8
      • _finder_links_terms9
      • _finder_links_termsa
      • _finder_links_termsb
      • _finder_links_termsc
      • _finder_links_termsd
      • _finder_links_termse
      • _finder_links_termsf
    • _finder_taxonomy
    • _finder_taxonomy_map
    • _finder_terms
    • _finder_terms_common
    • _finder_tokens
    • _finder_tokens_aggregate
    • _finder_types

Messages particuliers

  • Simple Wiki Linker Plugin v1.7.0 is activated! -> le plugin Simple Wiki Linker qui permet de créer des liens directs vers Wikipedia est installé

Liens utiles

Threads d'intérêt

Articles Vulgum Techus

Commentaires

blog comments powered by Disqus