Fulltext

Ce plugin permet d’exploiter le mode de recherche FULLTEXT de MySQL et d’améliorer la pertinence des recherches dans SPIP. Il permet aussi d’indexer le contenu de certains documents.

Ce plugin permet d’une part d’exploiter le mode de recherche FULLTEXT de MySQL en améliorant ainsi énormément les recherches par rapport au fonctionnement natif (et naïf) de SPIP, et d’autre part d’étendre l’indexation au contenu textuel des documents joints aux articles et/ou rubriques [1].

Indexation FULLTEXT

Performance

Sur une base de test comportant 200 000 articles, la vitesse de la recherche (hors rendu de la page, qui se fait à temps constant) passe de 5 secondes à 10 millisecondes ; sur deux mots, on passe de 15 secondes à 0,1 seconde.

Pertinence

Les résultats sont beaucoup plus pertinents, puisque si on tape deux mots (ou plus), le moteur FULLTEXT va trouver comme avant l’ensemble des articles contenant ces deux mots, mais attribuera un score plus important à ceux qui disposent de ces deux mots consécutifs. Ce score est comptabilisé par la balise #POINTS.

Fonctionnalité

Outre la recherche basique, le mode FULLTEXT permet d’utiliser des opérateurs logiques :

La casse (minuscule/majuscule) des mots recherchés est indifférente.
Les accents ne sont pas pris en compte (« déjà » ou « deja », retourneront à l'identique « déjà », « dejà », « déja »...)
Exemples d'utilisation
  ⇢ Retourne les textes qui contiennent SOIT « enfant », SOIT « étranger », SOIT « enfant » ET « étranger ».
  ⇢ Retourne les textes qui contiennent « enfant » ET « étranger ».
  ⇢ Retourne les textes qui contiennent « enfant » mais présente en premier les textes qui contiennent aussi « étranger ».
  ⇢ Retourne les textes qui contiennent « enfant » mais PAS « étranger ».
  ⇢ Retourne les textes qui contiennent « enfant » ET « étranger » ou bien « enfant » ET « Asie » mais présente en premier les textes qui contiennent « enfant » ET « étranger ».
  ⇢ Retourne les textes qui contiennent « enfant », « enfants », « enfance », « enfanter », « enfantillage ».... (L'astérisque * doit être terminale ; ainsi « *fant » ne retournera rien.)
  ⇢ Retourne les textes qui contiennent exactement la séquence de mots « enfant étranger ».

Remarque : ce tableau constitue le contenu de l’aide fournie dans ce plugin par la balise #AIDE_RECHERCHE.

Principe de fonctionnement

Concernant uniquement la partie mettant en œuvre l’indexation FULLTEXT, le plugin utilise ces deux fichiers :

-  inc/rechercher.php est une amélioration du fichier du même nom livré avec SPIP. À chaque recherche sur une table, ce fichier vérifie la présence d’un ou plusieurs index FULLTEXT sur la table en question (ainsi que sur les tables qui lui sont liées par une jointure, voir ci-dessous).

-  exec/fulltext.php vous propose de créer des index FULLTEXT sur la plupart des tables de SPIP. C’est une proposition, qui correspond aux usages les plus « normaux » de SPIP (pour aller plus loin, cf. ci-dessous, configuration avancée).

Jointures

Le moteur natif de SPIP gère les jointures entre les tables. Avec FULLTEXT on les gère aussi, mais à condition qu’il existe au moins un index FULLTEXT sur chacune des tables liées.

Ainsi par exemple, si vous avez un FULLTEXT sur spip_articles, un autre sur spip_mots, mais aucun sur spip_auteurs, une recherche sur les articles avec le terme « Italie » renverra les articles liés au mot-clé « Italie », mais une recherche sur le terme « Robespierre » ne renverra pas les articles signés par cet auteur.

Autrement dit, sauf application particulière, vous avez tout intérêt à passer l’ensemble des tables en mode FULLTEXT.

Indexation du contenu textuel des documents

Ce plugin propose en outre l’indexation (optionnelle) du contenu textuel des documents joints aux articles et/ou rubriques.

Il stocke pour cela dans la table spip_documents une version texte du document, obtenue à l’aide d’un « extracteur ». Cet extracteur peut être un exécutable système lancé depuis le plugin, ou du code purement PHP.

Les formats supportés à partir de la version 0.6.2 du plugin sont :

  • Le PDF, à condition que le fichier ne soit pas protégé contre la copie
  • Le DOC, PPT, et XLS
  • Le DOCX, PPTX et XLSX (nécessite PHP 5.2 au minimum, ainsi que l’option -enable-zip)
  • Le ODT (nécessite PHP 5.2 au minimum, ainsi que l’option -enable-zip)

Installation

Mise en place de l’indexation FULLTEXT

Une fois le plugin installé dans le répertoire plugins/ et activé à partir de la page « Gestion des plugins », la recherche fonctionne exactement comme avant. Pour l’installation proprement dite, il faut créer des index FULLTEXT sur les tables ; pour cela, il suffit de se rendre sur la page ecrire/?exec=fulltext, et de valider les opérations proposées.

On peut aussi, alternativement, les créer « à la main » à partir de n’importe quel client MySQL, avec les commandes suivantes :

ALTER TABLE spip_articles ADD FULLTEXT `titre` (`titre`); 
ALTER TABLE spip_articles ADD FULLTEXT `tout`
   (`surtitre`,`titre`,`soustitre`,`chapo`,`texte`,`nom_site`,`url_site`,`descriptif`); 

Le mode FULLTEXT n’étant disponible que sur les tables au format MyISAM, il faut parfois au préalable convertir les tables dans ce format :

ALTER TABLE spip_articles ENGINE=MyISAM;

La page ecrire/?exec=fulltext permet aussi de faire cela.

Indexation du contenu textuel des documents

Pour l’indexation des documents, il faut installer certains logiciels additionnels, et indiquer leur présence au plugin via des constantes à définir dans le fichier mes_options.php ou en utilisant le panneau de configuration de l’indexation des documents sur la page ecrire/?exec=fulltext_document.

Le panneau de configuration de l’indexation des documents permet de gérer la configuration (extracteurs et options éventuels) pour les fichiers PDF, DOC, PPT, XLS, ODT, DOCX, PPTX et XLSX et d’activer ou non l’indexation de ceux. ceci remplace la définition des constantes dans le fichier mes_options.php.

Certaines constantes sont génériques, non liées au type de fichier :

  • _FULLTEXT_TAILLE : Taille maximum conservée (en nombre de caractères) pour la version texte des fichiers (50000 par défaut). Cette configuration est également disponible dans panneau de configuration de l’indexation des documents.
  • De même, il est possible de définir l’intervalle (en seconde) entre deux passages du Spip-CRON et le nombre de document traités par itération.

Pour indexer un type de document, il est obligatoire de définir une constante non-nulle de type _FULLTEXT_EXT_EXE (où EXT est l’extension de ces documents) ou d’activer l’indexation via le panneau de configuration.
Il faut également qu’un « extracteur » pour ce type de document soit disponible.

Pour les PDF

  • Installer Xpdf
  • Définir ces constantes :
    • _FULLTEXT_PDF_EXE (par exemple /usr/bin/pdftotext) : Chemin vers l’exécutable pdftotext de Xpdf afin de transformer les fichiers PDF en texte brut
    • _FULLTEXT_PDF_CMD_OPTIONS (par exemple -enc UTF-8) : Options d’appel de l’exécutable

Pour les DOC, PPT et XLS

  • Installer Catdoc
  • Définir les constantes correspondantes (_FULLTEXT_DOC_EXE, _FULLTEXT_DOC_CMD_OPTIONS, etc.) ou utiliser le panneau de configuration de la même manière que pour les PDF.
    • Exemples pour les DOC :
      • Exemple pour utilisation en local sous Windows define("_FULLTEXT_DOC_EXE","C:\catdoc\catdoc.exe");
      • Exemple pour utilisation sous Linux : define("_FULLTEXT_DOC_EXE","/usr/bin/catdoc");
      • Exemple d’option pour extraction de DOC au format « Windows » vers format ISO-8859-1 : define("_FULLTEXT_DOC_CMD_OPTIONS","-s cp1252 -d 8859-1 ");
    • Exemples pour les XLS :
      • Exemple pour utilisation en local sous Windows define("_FULLTEXT_XLS_EXE","C:\catdoc\xls2csvt.exe");
      • Exemple pour utilisation sous Linux : define("_FULLTEXT_XLS_EXE","/usr/bin/xls2csvt");
      • Exemple d’option pour extraction de .XLS au format « Windows » vers format ISO-8859-1 : define("_FULLTEXT_XLS_CMD_OPTIONS","-s cp1252 -d 8859-1 ");
    • Exemples pour les PPT :
      • Exemple pour utilisation en local sous Windows define("_FULLTEXT_PPT_EXE","C:\catdoc\catpp.exe");
      • Exemple pour utilisation sous Linux : define("_FULLTEXT_PPT_EXE","/usr/bin/catpp");

Pour les ODT, DOCX, PPTX, XLSX

  • Les « extracteurs » utilisent des fonctions et des classes PHP fournit avec le plugin (nécessite PHP 5.2 au minimum, ainsi que l’option -enable-zip).
  • Définir les constantes correspondantes (_FULLTEXT_ODT_EXE, _FULLTEXT_DOCX_EXE, etc.) ou utiliser le panneau de configuration pour autoriser l’indexation. Il n’y a pas de binaire ou d’option à définir (mais si vous n’utilisez pas le panneau de configuration, une constante non-nulle doit être définie).

Documents protégés

Les documents PDF et XLS protégés ne seront pas indexé et se verront affecter le statut « ptg » dans la base de données.
Une page ecrire/?exec=fulltext_document_ptg permet d’obtenir la liste de ceux-ci.
Les documents PPT et PPTX protégés ne seront pas indexés et seront renvoyés comme erreur (statut « err »).

Les documents DOC, DOCX, ODT et XLSX protégés semblent être indexés.

Suivi

Analyse des recherches

Le plugin fait un suivi de ses opérations liées à la recherche dans tmp/recherche.log ; on voit les index FULLTEXT utilisés, le temps mis pour chaque recherche et le nombre de résultats, etc.

Exemple de log :

Mar 13 15:28:42 1.2.3.4 (pid 21184) fulltext article: titre, full2
Mar 13 15:28:42 1.2.3.4 (pid 21184) fulltext auteur: nom
Mar 13 15:28:42 1.2.3.4 (pid 21184) fulltext mot: titre
Mar 13 15:28:42 1.2.3.4 (pid 21184) MATCH(t.`titre`) AGAINST ('fluor dans l\'eau \"fluor dans l\'eau\"') * 3.1
   + MATCH(t.`surtitre`,t.`titre`,t.`soustitre`,t.`chapo`,t.`descriptif`) AGAINST ('fluor dans l\'eau \"fluor dans l\'eau\"') * 1.4
   + SUM(MATCH(obj1.`nom`) AGAINST ('fluor dans l\'eau'))
   + SUM(MATCH(obj2.`titre`) AGAINST ('fluor dans l\'eau'))
    AS score
Mar 13 15:28:42 96.21.135.101 (pid 21184) recherche article (fluor dans l'eau) : 500 resultats 1.187s

Ce log indique que la table article a deux index FULLTEXT nommés titre et full2 ; que la recherche portant sur « fluor dans l’eau » donne un poids de 3,1 à la présence de ces mots dans le titre, 1,4 dans l’ensemble des champs, et 1 pour le nom d’un auteur ou d’un mot-clé lié par une jointure.

Analyse des extractions

Le plugin fait aussi le suivi des extractions de version texte des fichiers, dans tmp/extract.log.

La page de configuration du plugin ecrire/?exec=fulltext indique le nombre de documents indexés, en attente d’indexation, protégés ou en erreurs.

Configuration avancée des index FULLTEXT

Avec n’importe quel client MySQL (ou phpMyAdmin) vous pouvez aller modifier la structure des index pour affiner les réponses, en incluant ou en excluant des champs, selon vos usages.

Ceci est notamment à faire si vous utilisez Extras2 pour ajouter de nouveaux champs : il faut alors créer un index incluant ces champs, pour qu’ils soient cherchables.

Notre recommandation : supprimer le précédent index FULLTEXT de tous les champs standards, et recréer un index FULLTEXT intégrant les champs standards et les champs extras pertinents. Seuls les champs de type TEXT (ou LONGTEXT etc) peuvent faire partie d’un index FULLTEXT.

Il est aussi possible d’aller bidouiller à l’intérieur du fichier pour, par exemple :

Ajouter des pondérations aux différents index

Le code consiste en une somme des scores donnés aux articles par les différents index. La pondération par défaut est une fonction décroissante du nombre d’éléments dans l’index. Ainsi, si on a deux index sur une table, l’un portant sur le titre, et l’autre sur l’ensemble des champs texte de la table, les termes de recherche présents dans le titre auront un poids de 4 environ, tandis que les mêmes termes trouvés dans le texte ne vaudront que 1 point.

Si l’on veut modifier ces poids il est possible :
— soit de modifier cette fonction pour qu’elle soit plus (ou moins) fortement décroissante ;
— soit d’ajouter un système encore plus compliqué avec des options de configuration ;
— soit d’ajouter un index. Par exemple, pour survaloriser les champs surtitre, sous-titre et chapo par rapport au champ texte, créer un index FULLTEXT supplémentaire avec la commande ci-dessous :

ALTER TABLE spip_articles ADD FULLTEXT `titrailles`
   (`surtitre`,`titre`,`soustitre`,`chapo`); 

Cela dit, les réglages proposés par défaut marchent très bien pour nous, essayez-les :-)

Éliminer de la recherche tout un ensemble d’éléments

Scénario : notre base de données comporte toutes les archives d’un journal depuis 1920. Si l’on veut faire une recherche qui limite aux seuls articles récents, il n’est pas raisonnable de demander à inc/rechercher.php de ramener suffisamment d’articles pour ensuite en éliminer 90 % avec un critère {date>1980} dans la boucle. On peut alors envisager d’ajouter « en dur » un critère WHERE supplémentaire au niveau de la requête MySQL de inc/rechercher.php.
-  pour ce faire, on pourra, par exemple, réduire le corpus de recherche pour la table spip_articles, en ajoutant dans mes_options.php une ligne :

define('_FULLTEXT_WHERE_article', ' t.date>"1980" ');


bien noter qu’il ne faut pas le ’s’ final dans le nom de la table, ainsi que l’utilisation des 2 types de quotes (’ et ") dans la définition de la clause WHERE.

Permettre à l’utilisateur de déterminer le corpus de recherche

On peut vouloir donner la possibilité à l’utilisateur de fixer la date de départ de sa recherche (lui permettre de ne chercher qu’à partir d’une date qu’il fixe lui-même).
Rien de plus simple.

-  Commençons par ajouter un input dans notre formulaire de recherche (formulaires/recherche.html`) :

<input type="text" class="text" size="5" name="recherche_date" id="recherche_date"[ value="(#ENV{recherche_date})"] />


-  Puis, dans notre fichier recherche_fonctions.php :

if ( _request('recherche_date') && preg_match('/\d{4}/', _request('recherche_date')) ) {
    $limite = _request('recherche_date');
    define('_FULLTEXT_WHERE_article', 't.date>"' . $limite . '"');
    define('_FULLTEXT_WHERE_rubrique', 't.date>"' . $limite . '"');
    define('_FULLTEXT_WHERE_document', 't.date>"' . $limite . '"');
}

Ceci limitera le corpus de recherche (l’ensemble des données dans lequel s’effectuera la recherche) pour les articles, rubriques et documents aux seuls éléments dont la date (en l’occurence l’année de publication) est strictement supérieure à celle fournie par l’utilisateur.

Étendre la recherche aux mots de 3 lettres

Par défaut MySQL FULLTEXT indexe les mots de quatre lettres ou plus. Pour étendre la recherche aux mots de 3 lettres ou plus, il faut modifier la config du serveur (/etc/mysql/my.cnf sous Debian), et ajouter les deux éléments suivants :

[mysqld]
ft_min_word_len=3
[myisamchk]
ft_min_word_len=3

Attention après avoir effectué cette manipulation il est impératif de reconstruire tous les index FULLTEXT de toutes les bases de données présentes sur le serveur, cf. http://dev.mysql.com/doc/refman/5.1....
Une méthode en ligne de commande (il faut être root) :

# /etc/init.d/mysql stop
Stopping MySQL database server: mysqld.
# myisamchk --recover /var/lib/mysql*/*MYI
... (quelques secondes ou minutes) ...
# /etc/init.d/mysql start

Fulltext et le plugin champs extras

Si vous avez crée des champs extras indexés.
Pensez à supprimer les index existants sur les tables où vous avez créés les champs pour ensuite les régénérer en incluant les champs nouvellement crées.

Exemples d’utilisation

Suggérer des réponses aux questions sur discuter.spip.net

Lire l’article « Forum.spip.org comme base de connaissances » sur SPIP Blog

et aussi

... à vous de jouer !

Notes

[1Uniquement les PDF, DOC, PPT, XLS, ODT, DOCX, PPTX et XLXS dans un premier temps.

Discussion

106 discussions

  • 2

    Merci pour avoir développé cet outil et l’avoir partagé. Ma question est honteusement basique mais merci d’avance à quiconque voudra bien m’éclairer. L’installation des logiciels complémentaires de lecture/extraction de pdf tel que XpdfReader doit se faire sur le serveur, via le sous-répertoire proposé usr/bin/pdftotext. Dans quel répertoire racine doit-on créer ce répertoire pour y placer le logiciel ? Dans /htdocs qui contient tous les répertoires du site spip, ou en amont (/vhosts) ou carrément dans /lamp0 ? Désolée de cette question basique...

    • Bonjour,
      Avez vous trouvé une solution depuis la publication de votre message ?
      Merci d’avance
      Gabin

    • Benoît Labourdette

      Bonjour,
      Même sujet. Mon site est hébergé chez un hébergeur classique mutualisé (en l’occurrence O2Switch). Dans ce cas, est-il possible d’installer Xpdf, dans un répertoire /lib/ à la racine du site par exemple ? Et si oui, quel serait le chemin à stipuler dans les paramètres de FullText ? public_html/lib/ ?
      Merci !

    Répondre à ce message

  • Bonjour

    Je viens d’installer le plugin FullText 1.2.0 sur un SPIP 3.0.16.

    J’ai installé les index comme le suggère le plugin (pour le moment uniquement spip_article). La bdd est bien à jour avec les 2 index créés (« titre » et « tout »).

    Dans mon squelette « recherche.html », j’ai la boucle suivante :

    <BOUCLE_rech_articles(ARTICLES) {id_rubrique!=3} {recherche} {par points} {inverse}>
    <li>#TITRE</li>
    </BOUCLE_rech_articles>

    Le plugin Fulltext n’a aucun effet sur cette boucle. Quand je regarde en debug, la requête SQL est toujours celle qui va chercher dans le hashcode dans la table « spip_resultats ».

    Que faut-il faire pour que le plugin Fulltext soit déclenché ?

    Merci pour votre aide.

    Répondre à ce message

  • 3

    Je lis ici « Le mode FULLTEXT n’étant disponible que sur les tables au format MyISAM, il faut parfois au préalable convertir les tables dans ce format : »

    Mais alors pourquoi y-a-t-il un bouton « convertir en InnoDB » pour chaque table listée sur la page ?exec=fulltext&ok=index de la table régénérée ?

    Merci

    • les dernières versions de mysql/mariadb permettent fulltext sur innodb. Du coup je me demande si le plugin devrait pas évoluer pour cela.

    • Bonjour,

      Comment exploiter FullText avec des tables au format InnoDB svp ?

    • Bonjour,

      Le plugin fonctionne déjà sans problème avec des tables InnoDB.

    Répondre à ce message

  • 1

    Bonjour
    Avec Spip 3.2.9 et Fulltext 2.0.1

    Lorsque je veux créer l’index « tout » pour les articles, j’obtiens un message d’erreur :

    article : Erreur 1283 Column 'url_site' cannot be part of FULLTEXT index.

    La recherche sur les articles est donc limitée aux seuls titres, alors que j’aimerais bien ajouter au moins le texte.

    • J’avais échangé sur la liste users mais pas ici.
      Le pb est résolu : dans ma table « articles », j’avais un mélange d’interclassements différents selon les colonnes. C’est réglé en passant toutes les colonnes en utf8_general_ci.

    Répondre à ce message

  • 2

    Quelquechose m’échappe.

    Comment fonctionne l’indexation des documents.
    Il semble qu’il faille installer un logiciel sur son ordinateur ?
    cela signifie t’il que chaque rédacteur doit installer ce logiciel sur son propre ordi ?

    • Il faut installer les exécutables qui permettent les conversions de PDF, ODT, DOC... sur le serveur (l’ordi qui fait tourner SPIP) puisque c’est sur ce dernier que seront les fichiers à indexer.

    • Bonjour,
      Pouvez vous m’indiquer comment installer pdftotext sur un site SPIP installé sur windows ?
      J’ai le message quoique j’essaye : « Ce logiciel n’est pas disponible sur le serveur »
      Merci d’avance
      Gabin

    Répondre à ce message

  • Antoine

    Très bon plugin.
    quelques remarques :
    -  le plugin ne traite pas les images, donc il faudrait retirer les images des erreurs d’indexation,
    -  j’ai des documents html, il ne les traite non plus, là il pourrait le faire
    -  si on pouvait visualiser les documents Indexés, Non-indexés, Protégés, En erreur d’indexation, ça éviterait d’aller sur regarder la base de donnée.
    A par ça c’est super

    Répondre à ce message

  • Magnifique plugin permettant notamment d’indexer les pdfs et donc de rechercher dans les documents publiés.

    Un soucis cependant avec la balise #AIDE_RECHERCHE que j’avais bêtement disposée dans le squelette en dessous du formulaire recherche.
    La balise insert effectivement le ficher prévu : aide_recherche.html. Mais ce fichier est une page html complète avec doctype, head et body. L’insertion de cette balise provoque alors des défauts d’affichage de la page où l’on a disposé cette balise ; deux doctypes dans la même page html c’est toujours un de trop.

    Je suggère donc soit de modifier le fichier aide_recherche.html pour qu’il puisse s’insérer normalement comme un bout de code dans un squelette, soit d’avertir les utilisateurs du plugin de l’usage inédit de cette balise.

    Cordialement, Yanic Gornet

    Répondre à ce message

  • Caille

    Bonjour,
    Il semblerait que fulltext ne prennent pas en compte les rubriques sans objets (article, document, ...) même en forçant les recherches via le paramètre « tout » dans les boucles de recherche. Est ce normal, y a t-il un contournement possible ou une possibilité de forcer la recherche ?

    Merci à l’auteur et tous ses contributeurs.
    ++

    Répondre à ce message

  • Idée d’amélioration pour aider à mieux trouver ce qu’on cherche :

    1. Lorsque je cherche « salade de riz » (sur Cuisine-libre.fr par exemple), cela revient à chercher « salade » : et la « salade de riz » cherchée est perdue dans les 322 résultats de « salade » (sans les deux derniers mots, trop courts pour être pris en compte). C’est déroutant pour l’utilisateurice qui n’y trouve pas ce qu’il cherche.
    2. Avec des guillemets, la requête « "salade de riz" » permet de trouver la « salade de riz » cherchée (1 seul résultat dans ce cas). Super, mais très peu d’utilisateurices utilisent les guillemets pour resserrer sa recherche.

    D’où la suggestion suivante : ordonner les 322 résultats en priorisant ceux correspondants à la requête exacte, suivis des autres.

    Répondre à ce message

  • Bonjour,

    Les dernières version d’innoDB permettent d’utiliser le FullText.
    Comment l’utiliser dans ce plugin svp ?

    Merci

    Répondre à ce message

  • Yop,

    si je comprend bien la modif de https://zone.spip.org/trac/spip-zone/changeset/104831/_plugins_/fulltext

    …il suffit de mettre dans mon fichier mes_options.php la ligne

    defined('_FULLTEXT_ASTERISQUE_PARTOUT') || define('_FULLTEXT_ASTERISQUE_PARTOUT', true);

    et hop, j’ai ma recherche sur le terme « nano » qui devient automatiquement équivalente à « nano* » (nanometre, nanotechnologie, etc.) ?

    oh yeah :)

    Répondre à ce message

  • Bonsoir,

    Suite à différents tests nous avons remarqué que l’exclusion de ’étranger’ dans une recherche full text du type ’+enfant -étranger’ n’était plus prise en compte dans les résultats en dessous d’un certain indice de pertinence. Nous avons donc quand même des résultats avec ’étranger’ quand l’indice de pertinence est < ou = à 10.

    Dans l’aide de Full Text il est pourtant indiqué : " Retourne les textes qui contiennent « enfant » mais PAS « étranger »."

    Est-ce normal ?

    Une idée sur la façon de modifier/corriger ce comportement ?

    Merci d’avance

    Répondre à ce message

  • 1

    J’ai essayé d’ajouter la recherche fulltext sur les zoteros de zotspip.

    J’ai fait un mini plus gin pour cela avec l’appel d’un pipeline :

    function zotspiprecherche_rechercher_liste_des_champs($tables) {
        $tables['zitem']['titre'] = 10;
        $tables['zitem']['resume'] = 7;
        return $tables;
    }

    J’ai pu générer les indexes...

    J’ai fait cette boucle :

                            <B_zitem>
                                <div class="menu menu_sites">
                                    #ANCRE_PAGINATION
                                    <h2>Recherche de base SPIP pour Zoteros "#ENV{recherche}" (#GRAND_TOTAL)</h2>
                                    <ul class="spip">
                                        <BOUCLE_zitem(ZITEMS) {recherche} {!par points} {id_parent==0}  {pagination 10}>
                                            <li><b>#TITRE</b> #POINTS</li>
                                            [<li><b>Json : </b>(#JSON)</li>]
                                            [<li><b>Resume : </b>(#RESUME)</li>]
                                        </BOUCLE_zitem>
                                    </ul>
                                    [<p class="pagination">(#PAGINATION)</p>]
                                </div>
                            </B_zitem>

    Mais les résultats ne collent pas...

    J’ai trouvé un fichier log fulltext.log dans tmp/log :

    Aug 29 10:02:11 83.152.44.246 (pid 26641) :Pri:ERREUR: TABLE spip_plugins ADD FULLTEXT prefixe (prefixe)
    Aug 29 11:14:25 83.152.44.246 (pid 22848) :Pri:ERREUR: TABLE spip_plugins ADD FULLTEXT prefixe (prefixe)
    

    Je ne comprend pas trop ce qui se passe....

    Est ce que quelqu’un aurait une idée, une piste ?

    Merci d’avance !

    • Bonjour à tous !

      Finalement, nous travaillons sur le plugin zotero pour le faire évoluer.

      Nous avons résolu le problème des jointures.

      J’ai trouvé la piste ici : http://code.spip.net/fr/archives/plugins-7/article/declarer-et-ajouter-des-tables

      La partie intéressante est celle-là :

      $join_nouvelletable = array(
      « id_article » => « id_article »
      ) ;

      $tables_principales[’spip_nouvelletable’] = array(
      ’field’=>&$nouvelletable,
      ’key’ => &$cles_nouvelletable,
      ’join’ => &$join_nouvelletable,
      ) ;

      Pour la table zitems, j’ai écris

      $join_zitems = array(
      « id_zitem » => « id_zitem »
      ) ;

      $tables_principales[’spip_zitems’] = array(
      ’field’ => &$zitems,
      ’key’ => &$zitems_cles,
      ’join’ => &$join_zitems,
      ) ;

      J’ai suivi ce principe sur les autre tables.

      Donc maintenant, les références zotero s’affichent bien dans l’espace privée et nous pouvons faire des jointures dans les boucles de la partie publique.

      Par contre, les résultats de la recherche fulltext ne sont toujours pas pertinents...

      Est ce que quelqu’un aurait une idée ? Une piste à creuser ?

      Merci d’avance de votre aide.

    Répondre à ce message

  • Bonjour,

    Les documents images sont en erreur d’indexation, ce qui me parait normal.
    Donc, ils ressortent dans le total des documents en erreur.

    N’y a t-il pas possibilité de les sortir de ce décompte ?

    Merci d’avance et bravo pour ce plugin !

    Répondre à ce message

  • Je tente de faire une recherche fulltext sur les objets du plugin zotspip.

    J’ai déclarer table et jointure via pipelines :

    // Ajout nouvelles tables de recherche
    $GLOBALS['spip_pipeline']['rechercher_liste_des_champs'] .= "|ajout_recherche_champs";
     
    function ajout_recherche_champs($tables) {
        $tables['zitems']['titre'] = 3;
        $tables['zcollections']['zcollection'] = 3;
        $tables['zcreators']['auteur'] = 3;
    	return $tables;
    }
    
    // Ajout nouvelles jointures
    $GLOBALS['spip_pipeline']['rechercher_liste_des_jointures'] .= "|ajout_jointures";
     
    function ajout_jointures($tables) {
        $tables['zitems']['zcollections']['zcollection'] = 2;
        $tables['zitems']['zcreators']['auteur'] = 2;
    	return $tables;
    }

    J’ai fait la conversion des tables avec l’outil fourni avec Fulltext dans l’espace privé de spip.

    Mais ma boucle spip spip ci-dessous ne sort rien...

                                    <B_zitem>
                                        <div class="menu menu_sites">
                                            #ANCRE_PAGINATION
                                            <h2>Recherche zitem perso (#GRAND_TOTAL)</h2>
                                            <ul class="spip">
                                                <BOUCLE_zitem(ZITEMS){recherche} {pagination 5}>
                                                    <li>#TITRE</li>
                                                </BOUCLE_zitem>
                                            </ul>
                                            [<p class="pagination">(#PAGINATION)</p>]
                                        </div>
                                    </B_zitem>

    Vous pouvez prendre votre temps pour répondre, je suis en vacances à partir de maintenant !

    Ceci dit, merci d’avance de vos réponses !

    Répondre à ce message

  • 1

    Bonjour

    Je viens d’installer Fulltext. Tout fonctionne bien sauf... qu’il ne trouve jamais Olympic marina (ou olym* ou toute autre combinaison) sur mon site

    guidemediterranee.com

    Olympic marina est en chapo et « dépend » de Lavrion.

    Il existe un Lavrion (titre) et un Lavrion - Olympic marina (titre + chapo)

    Une recherche sur Lavrion ne donne que Lavrion et pas les deux entrées.

    Je ne comprend vraiment pas pourquoi (alors que Athenes donne bienb tous les Athènes)

    Merci d’un essai d’explication

    ADB

    • Je me réponds à moi-même...

      Désolé pour le bruit : il s’agissait simplement d’un problème de mot clé dans le fichier Recherche.html.

      Tout est parfait

      Merci pour ce plugin

    Répondre à ce message

  • Bonjour

    Gros problème de restauration de la base, ça semble venir du plugin Fulltext.
    Ma base est en mysql.

    Lorsque je veux restaurer la base sauvegardée via le menu maintenance de Spip, toutes les tables sont en échec.
    Lorsque j’exporte, puis réimporte via phpmyadmin, j’ai l’erreur suivante :
    #1064 - 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 ’TYPE=MyISAM AUTO_INCREMENT=558’ at line 44

    Ma config :
    SPIP 3.0.16
    Fulltext 1.1.8 à jour.

    Merci pour votre aide.

    Répondre à ce message

  • 3

    Avec SPIP 3.0.17 et Fulltext 1.0.2 la recherche sur le mot « this » ne donne rien.
    Ce mot fait référence à un auteur qui s’appelle « Hervé This ».

    J’arrive bien à trouver des auteurs dont le nom est en 4 lettres par ailleurs.

    Avez-vous une idée sur l’origine du problème ?

    • Sur SPIP 3.0.21 avec Fulltext 1.1.8, testé sur deux sites

      la recherche ne prend pas en compte certains mots comme

      -  this
      -  the
      -  new

      Cela ressemble à des mots clés qui ne seraient pas pris en compte ?
      Des idées ?

    • je précise que j’ai bien activé l’astuce pour étendre la recherche sur 3 lettres.

    • Solution trouvée par Nicod_

      Il existe un dictionnaire de mots ignorés par défaut (stop words).
      La requête…

      SQL SHOW VARIABLES LIKE 'ft_stopword_file';

      … doit afficher ’built-in’

      La liste par défaut (built-in) est celle-ci :
      http://dev.mysql.com/doc/refman/5.5/en/fulltext-stopwords.html

      Il faut alors modifier la config du serveur Mysql ( my.cnf) et lui indiquer dans la section [mysqld] :

      ft_stopword_file = ""

      À utiliser si c’est vraiment nécessaire, car cela peut augmenter le « bruit » dans les résultats.

    Répondre à ce message

  • 4

    Bonjour,

    Je voulais juste signaler que le plug-in ne fonctionne pas quand la base de données du site a été conçu en Sqlite !

    Merci !

    • Bonjour,

      Je pense que j’ai le même problème mais je ne sais pas ou trouver le format de ma base.
      Le plugin me dit de convertir en UTF8 mais lorsque je clique sur ce lien j’ai l’erreur : « Fichier convert_sql_utf8 introuvable »

      dd

    • Ce fichier est dans le plugin « grenier ».

    • Trouvé, merci.

      Pour un site cela a fonctionné, pour un autre non je me retrouvais avec du contenu invisible dans l’espace public ET privé dès lors qu’il y avait un caractère accentué. J’avais déjà essayé avec Fusion de convertir sqlite en mysql sans succès. Je réessaierai un jour.

      dd

    • Re,
      Pour ceux que ca intéresse, j’ai publié sur un autre forum une solution assez simple pour convertir une base de donnée sqlite vers mysql :
      http://forum.spip.net/fr_213057.html
      J’espère que ca aidera.

    Répondre à ce message

  • 1

    Bonjour,

    Merci pour ce plugin. J’ai juste 1 remarque et 1 bidouille.

    Il me semble qu’il y a une différence entre le fonctionnement avec et sans index sur le pluriel des mots. Sans index la recherche sur « enfant » apportera aussi les articles avec le pluriel « enfants ». Ce n’est pas le cas avec fulltext. Y-a-t-il moyen de systématiquement faire ajouter à la requête une astérisque à la fin des termes sauf si l’on a mis des guillemets, pour une recherche sur un mot ou une expression précise ?

    Je n’ai pas réussi à faire fonctionner l’extraction de texte des pdf. Je suis sur un Windows, SPIP et plugin à la dernière mode. Comme je ne publie pas chaque jour des brassées de pdf, j’ai contourné en le faisant à la main. J’ai ajouté avec le plugin champ_extra un champ à la table document et j’y fais un copier coller du texte en allant le chercher sur le pdf sans autre manoeuvre que CRTL+A puis CRTL+C. C’est pas cher et ça fonctionne... :-)

    • Bon, c’est le même comportement sur contrib.spip et spip.net.

      Sur contrib, si on cherche « fulltex » cela ne retourne rien, il faut ajouter l’astérisque pour avoir des résultats.

      Le tableau d’exemples devrait illustrer ce point (ou plutôt cette étoile :) ).

    Répondre à ce message

  • 1

    Bonjour.

    Impossible pour moi de faire une extraction de PDF, le plugin m’indiquant que pdftotext n’est pas disponible sur le serveur (CentOS 6.5), alors que le binaire est présent (testé également en indiquant en dur le chemin du binaire dans mes_options.php).
    pdftotext provient du paquet poppler.x86_64. Je précise que l’extraction fonctionne en console (loggué sur le serveur, user non root).
    Les droits d’éxécution (sudoers) ont été vérifiés et ne semblent pas poser problème
    Les logs extract.log et prive_extract.log ne sont pas très explicites et indiquent juste une erreur d’extraction, ex :


    Oct 02 15:16:45 une_adresse_ip (pid 21566) Indexation de pdf/16_mai_2013.pdf
    Oct 02 15:16:45 une_adresse_ip (pid 21566) Extraction PDF avec /usr/local/bin/pdftotext -enc Latin1 IMG/pdf/16_mai_2013.pdf
    Oct 02 15:16:45 une_adresse_ip (pid 21566) Erreur extraction IMG/pdf/16_mai_2013.pdf (code 127) :

    SPIP - v2.1.26
    Plugin FullText - v0.8.2

    Merci d’avance de votre aide.

    • Moi je pense que l’auteur aurait du utiliser le fonction File_exists de php. Ca sert à rien de lancer un exec sur un fichier par exemple dans windows Ca ne fonctionne pas la majorité du temps.

    Répondre à ce message

  • Fixer une date de départ (cf §Permettre à l’utilisateur de déterminer le corpus de recherche)
    Sur un SPIP 3.0.17, il semble qu’il y ait un problème avec la fonctionnalité décrite (limiter la recherche aux « objets » dont la date est postérieure à l’année saisie)

    J’ai modifié le formulaire recherche de la dits tel que décrit.

    • L’input date est présent.
    • Après soumission, l’argument recherche_date est bien pris en compte
      (ici : spip.php ?page=recherche&recherche=semis+direct&recherche_date=2015
    • recherche_date est récupéré par la page recherche.html mais n’est pas correctement transmis au /compris par le formulaire de recherche
      voir copie d’écran (j’ai mis des [<pre>#SQUELETTE : (#ENV**|unserialize|print_r{1})</pre>] dans le squelette appelant et en tête du fichier du formulaire de recherche pour voir ce qu’il se passait)

    Bien sûr, la limitation de date souhaitée ne fonctionne pas.

    Quelque chose que j’ai mal fait ? Un oubli dans la doc ?… Un bug ?

    Répondre à ce message

  • Le plugin marche très bien avec SPIP v3.0.15. J’ai juste eu la petite surprise de constater que les recherches sur un seul mot ne donnaient parfois pas les mêmes résultats suivant la syntaxe de la recherche :
    -  un seul mot de de 3 lettres (j’ai étendu la recherche aux mots de 3 lettres tel qu’indiqué dans la documentation) : abc se comporte comme abc*. « abc » et +abc ont le comportement attendu. Pour corriger ce problème, j’ai rajouté des guillemets avant l’appel du plugin dans ce cas. Ça marche, mais s’est franchement sale :)

    -  un seul mot de 1 ou 2 lettres : même soucis que précédemment sauf que ce n’est pas vraiment gênant. « ab » et +ab ne sortent aucun résultat, ce qui est attendu.

    -  le ranking pour les mots de 4 à 7 lettres est différent que la recherche soit mon_mot ou +mon_mot (ou « mon_mot »). Je n’ai pas analysé en détails mais il me semble à première vue que le résultat attendu est obtenu avec le + ou les guillemets.

    De plus n’y aurait-il pas un soucis avec le caractère ’è’ ? La recherche est indépendante des accents (et marche même avec ’œ’) mais le ’è’ semble devoir être présent dans le champ de recherche pour qu’elle aboutisse correctement. Ce n’est pas dramatique en pratique car de toutes façons les utilisateurs tapent les accents dans le champ de recherche. C’est juste bizarre...

    Enfin, une petite requête : ne serait-il pas judicieux que la recherche ait un « mega-boost » lorsque le champ entier indexé est égal à la requête ? Par exemple, je rêve que si la base contient un article dont le titre est Fulltext et que la requête est fulltext, la recherche le sorte premier haut la main devant d’autres articles dont le titre est Fulltext marche très bien ou La recherche fulltext est active. Ce n’est peut-être pas possible, mais ce serait pratique.

    Répondre à ce message

  • 1

    Bonjour,
    Sur un site en SPIP 3.0.17 [21515] avec Fulltext Version :
    0.8.2 SVN [82959] activé

    j’ai une erreur lors de la recherche sur le site public :

    1 Erreur SQL 1146
    Table ’site.spip_giss_articles’ doesn’t exist
    SELECT t.id_article, t.surtitre, t.titre, t.soustitre, t.chapo, t.texte, t.ps, t.nom_site, t.url_site, t.descriptif, MATCH(t.titre) AGAINST (’ssr*’ IN BOOLEAN MODE) * 8 +
    ...
    / /
    2 Erreur SQL 1146
    Table ’isite.spip_giss_rubriques’ doesn’t exist

    je vois qu’il y a un « s » en trop à gis mais je ne sais pas où le corriger

    merci
    dd

    • Bonjour

      Même problème depuis la maj du plugin. Quelqu’un a-t-il trouvé l’origine du bug ?

    Répondre à ce message

  • Bonjour,

    tout d’abord merci pour votre plugin.

    J’ai bien intégré les éléments mais une chose curieuse se produit.

    Quand je recherche des termes ainsi qu’a partir d’une date (comme le cite votre explication), cela fonctionne mais si je change la date à nouveau, ça ne le prend plus en compte. Par précaution, j’ai désactivé le cache. C’est très aléatoire. je n’ai plus d’idées.

    Avez vous déjà constaté ce comportement ?
    merci d’avance.

    Répondre à ce message

  • obiwanriko

    Merci à Leam ! Effectivement lorsque l’on fait comme dit : « En créant tous les index (à la fin de la page configuration) le problème » Le bug table spip_paquets_plugins doesn’t exist (et autres tables... suivant le splugins installés) disparait de l’admin ! ouf !

    Répondre à ce message

  • 5

    Bonjour ,

    Je voudrais pouvoir faire une recherche sur les albums, plugin albumV2.

    j’ai ajouté dans inc/rechercher.php : pipeline(’rechercher_liste_des_champs’ ... ’album’ => array( ’titre’ => 8, ’descriptif’ => 5

     ?exec=fulltext ,
    PhpMyAdmin : j’ai donc une table blop_albums (pas spip_albums) en MyIsam ,
    a été créé un index fulltext sur le champ titre :
    NomIndex|Type|Unique|Compressé|Colonne|...
    titre|FULLTEXT|Non|Non|titre|1| |Non|

    mais le type du champ texte est varchar(255) ! et non pas « text » est-ce cela qui peut bloquer ?
    La doc disant « Seuls les champs de type TEXT (ou LONGTEXT etc) peuvent faire partie d’un index FULLTEXT » j’imagine que de de là peut venir le problème !
    si oui, est-ce que je peux convertir sans risque pour le fonctionnement du plugin album ?

    • j’ai passé le champ titre de la table _albums en type TEXT , mais ça n’a aucun effet, pas de recherche sur les albums ... vous auriez une idée ?

    • point étonnant (si lier...) : c’est que la recherche sur les albums dans l’espace privé est maintenant parfaitement opérante et efficace. Mais du côté public, niet.

    • pour préciser le pb :
      -  sur ecrire/ ?exec=fulltext j’ai bien album (22262) , l’index ’titre’ créé
      -  rien dans tmp/recherche.log pour album
      j’ai essayé de supprimer recréer les index fulltext via phpmyadmin et ecrire/ ?exec=fulltext sans résultat. Si qcq’un avait une idée à me suggérer ...

    • il suffisait d’ajouter dans le squelette recherche.html :

      [(#REM) Albums trouves ]
      	<B_albums>  ...
      	<BOUCLE_albums(ALBUMS) {recherche} {!par points}>
      etc.

       ;o)
      8 mois que je (re)cherche la solution du pb dans recherche.php, les pipelines, les fct° php, phpmyadmin ...
      Pour les nuls comme moi ... ça vaut sans doute le coup de le mettre dans la doc

    • La Recherche en SPIP est expliquée dans la doc. officielle,
      mais d’après ce que je comprends de ta recherche,
      c’est http://spippourlesnuls.fr/ ?rechercher-dans-un-site-spip que tu aurais voulu ?

      N’hésite pas a me renvoyer des demandes plus précises..
      Cdlt
      YannX

    Répondre à ce message

  • 2

    Bonjour,
    J’ai un petit souci avec Fulltext, j’ai créé un objet éditorial (via le plugin Fabrique), cet objet me permet d’étendre les auteurs SPIP (en ajoutant un tas de champs), je souhaite donc effectuer des recherches sur cet objet éditorial, malheureusement le formulaire de recherche ne remonte que ce qu’il trouve dans la table auteurs en ignorant la jointure sur profils

    -  Dans mon theme (un plugin), j’ai bien ajouté dans paquet.xml un « utilise » sur Fulltext
    -  J’ai bien créé l’indexation de mon plugin via ?exec=fulltext
    -  j’ai surchargé inc/rechercher.php en ajoutant ma table et les pondérations sur les champs
    -  J’ai bien ajouté ces mêmes champs dans mon plugin dans base/profil.php > fonction profil_declarer_tables_objets_sql dans « rechercher_champs »

    Visiblement ma recherche tape toujours dans la table auteurs mais pas dans profils...

    Any idea ?

    Merci d’avance !

    • Bonjour,
      je rencontre la même difficulté pour le plugin album V2
      -  j’ai pour album l’index ’titre’ créé via ?exec=fulltext
      -  j’ai surchargé inc/rechercher.php en ajoutant album et les pondérations sur les champs
      par contre
      -  j’ai pas ajouté dans le paquet.xml de album un « utilise » sur Fulltext (je peux essayer si vous me précisez ce qu’il faut ajouter)
      -  j’ai pas ajouté dans base/profil.php > fonction profil_declarer_... (?..) (idem ...)

      dans l’espace privé la recherche est parfaitement opérationnelle
      sur le site public pas de recherche sur les albums !

      recherche.log :
      dans espace privé :

      Jun 26 21:42:32 81.57.179.103 (pid 19185) :Pri:info: fulltext album: titre
      Jun 26 21:42:32 81.57.179.103 (pid 19185) :Pri:info: 
      Jun 26 21:42:32 81.57.179.103 (pid 19185) :Pri:info: fulltext mot: titre
      Jun 26 21:42:32 81.57.179.103 (pid 19185) :Pri:info: (MATCH(t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dGl0cmU8L2NvZGU+"></span>) AGAINST ('gargamel')) * 8 + IF(SUM(o1.score) IS NULL,0,SUM(o1.score)) AS score
      Jun 26 21:42:32 81.57.179.103 (pid 19185) :Pri:info: recherche album (gargamel) : 1 resultats 222.351 ms

      sur site public :

      Jun 26 23:16:33 81.57.179.103 (pid 4198) :Pub:info: fulltext article: titre
      Jun 26 23:16:33 81.57.179.103 (pid 4198) :Pub:info: 
      Jun 26 23:16:33 81.57.179.103 (pid 4198) :Pub:info: fulltext auteur: nom
      Jun 26 23:16:33 81.57.179.103 (pid 4198) :Pub:info: 
      Jun 26 23:16:33 81.57.179.103 (pid 4198) :Pub:info: 
      Jun 26 23:16:33 81.57.179.103 (pid 4198) :Pub:info: fulltext mot: titre
      Jun 26 23:16:33 81.57.179.103 (pid 4198) :Pub:info: (MATCH(t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dGl0cmU8L2NvZGU+"></span>) AGAINST ('gargamel')) * 8 + IF(SUM(o1.score) IS NULL,0,SUM(o1.score)) + IF(SUM(o3.score) IS NULL,0,SUM(o3.score)) AS score
      Jun 26 23:16:33 81.57.179.103 (pid 4198) :Pub:info: recherche article (gargamel) : 0 resultats 32.487 ms
      ...

      etc. (30 ligne aucune album)

    • Bonjour,
      venant de résoudre mon pb je me demande s’il pourrait éclairer le votre.
      Ajouter comme je l’ai fait une boucle pour auteurs ou pour profils dans recherche.html n’est sans doute pas la solution. Un problème de jointure ...
      je vois dans le plugin albums dans base/albums.php ces lignes en plus dans fonction albums_declarer_tables_objets_sql :

      // jointures sur les albums pour tous les objets
      // passe apres id_auteur=>auteurs_liens et evite de le casser
      $tables[]['tables_jointures'][]= 'albums_liens';
      $tables[]['tables_jointures'][]= 'albums';

      si ça vous « parle » et peut vous aider

    Répondre à ce message

  • Bonjour,

    Ma configuration :
    -  spip 3.0.17 en utf-8
    -  plugin fulltext 0.8.2
    -  mysql 5.5.38 utf-8

    Après avoir indexé tous les index suggérés, j’obtiens le message en bas de la page :

    Une incohérence entre le charset de votre site et celui des tables de votre base de données risque de fausser les recherches avec caractères accentués :convertir en UTF-8 pour restaurer la cohérence

    Quand je clique sur le lien « convertir en UTF-8 pour restaurer la cohérence », il m’envoie à la page ecrire/?exec=convert_sql_utf8 qui n’existe pas.

    J’obtiens le message d’erreur :

    Fichier convert_sql_utf8 introuvable

    Alors j’ai installé le plugin grenier qui propose le script ecrire/?exec=base_convert_sql_utf8 (et non ecrire/?exec=convert_sql_utf8).

    Il faudrait peut-être adapter le plugin fulltext pour spip3.0 :

    1. mettre une dépendance vis-à-vis du plugin grenier
    2. lancer le script ecrire/?exec=base_convert_sql_utf8 en cas d’incohérence

    bien à vous,

    Répondre à ce message

  • 2

    bonjour

    idem,

    la recherche ne se fait plus que sur le champ titre malgré la reconstruction des index. Je ne sais pas depuis quelle version c’est comme celà

    Répondre à ce message

  • Bonjour,

    depuis la mise à jour vers la version 0.8.2, j’ai un message d’erreur lorsque j’utilise le moteur de recherche dans le back-office :

    Invalid argument supplied for foreach() in /plugins/auto/fulltext/v0.8.2/inc/recherche_to_array.php on line 68

    Voir également la copie écran ci-jointe.

    Je précise que cette erreur ce produit avec la config suivante :
    -  SPIP 3.0.16 ;
    -  uniquement le plugin Fulltext V.082 activé ;
    -  le répertoire /squelettes mis en berne.

    Cheers

    Répondre à ce message

  • 2
    Matthieu

    Bonjour,

    Quand je fais une recherche depuis l’interface privée de SPIP 3.0.5 avec le plugin Fulltext installé (v0.8.2) j’obtiens une erreur SQL :
    Erreur SQL 1146
    Table ’namesite.spip_paquets_plugins’ doesn’t exist
    SELECT id_plugin,id_paquet FROM spip_paquets_plugins WHERE 0=1

    Ainsi que des warning php :
    Warning : Invalid argument supplied for foreach() in www/plugins/auto/fulltext/v0.8.2/inc/recherche_to_array.php on line 68

    Warning : Invalid argument supplied for foreach() in www/plugins/auto/fulltext/v0.8.2/inc/recherche_to_array.php on line 260

    Mais tout en bas de la page, les résultats s’affichent, après une dizaine de pages écrans de warning php.

    Si je désactive Fulltext cela fonctionne correctement.
    Par contre, le plugin donne de superbes résultats sur le site public.

    Une idée ?
    Merci d’avance.

    • J’ai rencontré le même problème et donc bricolé de plugin :

      J’ai ajouté une condition ligne 29 de inc/rechercher.php

      if ( $t != "spip_plugins") {
      	if ($infos['rechercher_champs']){
      		$liste[$infos['type']] = $infos['rechercher_champs'];
      	}
      }
    • Bonjour
      En créant tous les index (à la fin de la page configuration) le problème disparaît

    Répondre à ce message

  • 4
    arriflex

    Bonjour,

    Après une mise à jour de ma base en UTF-8, l’installation du plugin Fulltext et la création des index (depuis le plugin), plus aucun résultat ne s’affiche en lançant des recherches dans le moteur interne ou public.

    C’est un peu la panique...

    Avez-vous une idée d’où cela pourrait venir ?

    Merci beaucoup.

    • arriflex

      Bonjour,

      Je rencontre toujours ce problème : quand le plugin fulltext est activé, le moteur ne renvoie aucun résultat lors d’une recherche. J’ai passé toutes les tables en mode fulltext et quand le plugin est désactivé la recherche renvoie bien des résultats...

      Sauriez-vous d’où peut venir le problème ?

      Merci d’avance.

    • isaweb

      Même chose pour moi : quand le plugin Fulltext est activé, la recherche ne fonctionne pas.

    • La version 0.8.1 corrige un gros bug, ça devrait aller mieux !

    • Merci Cédric. J’ai installé la toute dernière version : avec Fulltext activé, cela semble bien fonctionner pour les articles, mais la recherche ne se fait pas dans les sites référencés malgré leur indexation dans la configuration du plugin.
      Merci.

    Répondre à ce message

  • 1

    La recherche marche parfaitement... quand on désactive Fulltext !

    Répondre à ce message

  • Bonjour,

    Il pourrait être également intéressant de documenter comment supprimer la fonction stopword, qui peut empêcher des éléments d’être retrouvé via la recherche : http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html#sysvar_ft_stopword_file

    En gros, tout comme le changement à 3 caractères min pour la recherche, il faut modifier le fichier de configuration de MySQL pour y mettre
    ft_stopword_file = ''
    puis redémarrer le serveur MySQL et relancer l’indexation FullText (via l’admin de votre site).

    Il peut être également utile de vider le cache de SPIP.

    Répondre à ce message

  • Christophe Noisette

    Bonjour,

    J’ai un petit souci avec le magnifique plugin FullText (un grand merci aux créateurs).
    Sur la page de configuration, je ne peux plus utiliser la fonction « Créer l’index tout (surtitre,titre,soustitre,chapo,texte,ps,nom_site,url_site,descriptif) »... sur la table article.

    Si je clique sur « crééer l’index ’tout’ », j’ai l’erreur suivante qui s’affiche :
    Erreur 1283 Column ’url_site’ cannot be part of FULLTEXT index

    Ma base est en UTF-8. En tout cas c’est ce que me dit configuration/langue principale du site.

    Mais quand je me connecte via PhpMyAdmin, je vois que sur la table article, par exemple, certains champs (pas tous) sont encore en encodage « latin1_swedish_ci », comme les champs Titre, SurTitre, Chapo et Texte. En revanche, URL_SITE est en UTF-8. A n’y rien comprendre, j’avoue.

    Est-ce que je dois les forcer à passer en UTF-8 via PhpMyAdmin ?
    Merci pour vos lumières, vos réponses
    Cordialement
    Christophe

    Répondre à ce message

  • 1

    Bonjour,

    Juste pour vous informer que j’obtiens cette erreur dans les logs php_errors.log

    [09-Apr-2014 14:40:07] PHP Fatal error : Class ’ZSimplePPTX’ not found in /htdocs/plugins/fulltext/lib/simplepptx.class.php on line 81

    Any idea ?

    Merci,
    Freed

    • C’est corrigé commit 81745, c’est juste les zips qui ne sont pas à jour (erreur temporaire).

    Répondre à ce message

  • 1

    bonjour,

    Je teste le plugin Dictionnaires.

    Pas de problème pour utiliser avec Fulltext, tous les champs sont reconnus sauf un champ « termes »
    Avec PHPMyAdmin, pas de différences visibles. Est-ce parce que le mot « termes » comporte un "s à la fin ?

    Répondre à ce message

  • lilibaba83

    bonjour,

    J’utilise spip3 un squelette sarka et le module fulltext pour gerer des nomenclatures (listes de référence).

    Or, quand je lance une recherche sur un morceau de référence, il ne trouve rien.

    par exemple, j’ai la ref 48523697524 dans une nomenclature et si je cherche 4852 il devrait me trouver toutes les ref contenant 4852 mais il ne trouve rien.

    y a t-il un moyen pas trop complexe de contourner ce problème très gênant ? ou un réglage que j’aurai loupé ?

    Merci d’avance,

    Répondre à ce message

  • 1

    Bonjour,

    Après pleins de tests infructueux, je cherche à installer XPDF sur un mutualisé OVH (et spip 3.0). J’ai bien testé les versions 32 bits ou 64 bits sous LINUX, en mettant bien le chemin complet, mais à chaque fois le plugin me répond qu’il ne trouve pas l’exécutable.

    Quelqu’un pourrait-il me fournir un lien clair pour avoir le bon fichier pdftotext à installer ?

    Merci de votre aide !

    Julien

    • Suite de mon message : le serveur OVH mutualisé est sous Debian Linux version noyau : 3.2.42

      Où puis-je trouver un exe déjà fait qui tourne sur ovh ? Cela doit bien exister !

      Merci, merci,
      Julien

    Répondre à ce message

  • 1
    edouars

    Après avoir converti les tables en myisam, impossible de restaurer la base de donnée après sauvegarde...

    J’ai un échec sur tous les champs gérés par le plugin.

    Des idées pour régler ça ?

    merci

    Répondre à ce message

  • 2

    Bonjour,

    J’ai installé SPIP - pour le moment - uniquement avoir une interface à la recherche fulltext de MySQL (mais je suis tellement emballé par la qualité de ce que je vois, que je risque fort de m’en servir pour notre intranet).

    J’ai donc installé le plugin FULLTEXT ainsi que tous les binaires nécessaires (pdftotext, catdoc...). Le plugin est configuré et j’ai ajouté les champs titre,descriptif,fichier,credits,contenu à l’index fulltext.

    J’ai ensuite importé tous mes documents (xls, doc, docx, pdf) au moyen de l’import global du répertoire /tmp/upload : tout a bien été importé.

    Dans l’interface du plugion FULLTEXT, je vois bien 170 documents (nous en avons quelques centaines, mais c’est juste un essai). Curieusement, chaque fois que je rafraichis la page, 5 documents de plus passent en indexés (5 est le « Nombre de documents à traiter par itération du CRON »).

    Pour autant, je n’ai aucun contenu dans les champs « contenu » de la table spip_documents et la table spip_mots est vide.

    Les fichiers extract.log et recherche.log n’existent pas et le fichier spip.log ne mentionne pas d’erreur.

    Du coup avec aucun résultat et aucune erreur, je ne sais vraiment pas quoi faire.

    • 24h après, le champ « contenu » est rempli. Pas pensé à faire un ps pour voir s’il bossait.
      Par contre, toujours aucun résultat de recherche, toujours rien dans la table mots, toujours pas de fichiers extract.log et recherche.log. L’index est bien là (le .MYI) et sa taille, bien plus important que les autres, laisse suggérer qu’il est bon.

    • Ce plugin cherche, et c’est bien normal, parmi les documents qui sont en statut « publié ».

      Or, avec l’import global, les documents sont en statut « prop » et ne ressortent donc pas.

      Il faut donc changer ce statut (et ajouter la boucle pour listes les documents, car le plugin ne le fait pas) et ça fonctionne.

    Répondre à ce message

  • 9
    Aurélien

    Bonjour,

    J’ai un sacré problème, (je suis sous spip 3 0 4).

    En effet, lorsque je veux installer le plugin fulltext celui-ci m’indique que « Une incohérence entre le charset de votre site et celui des tables de votre base de données risque de fausser les recherches avec caractères accentués:convertir en UTF-8 pour restaurer la cohérence ».

    Je clique donc sur le lien et ça m’affiche ça : Fichier convert_sql_utf8 introuvable

    Que puis-je faire ? merci de votre aide,

    Aurélien
    http://www.fortboyard.net

    • Oui pour avoir cette page il faut installer le plugin « grenier ». Une fois la conversion faite, tu pourras supprimer le plugin.

    • Aurélien

      Bonjour et merci de ta réponse,

      Je viens d’installer le plugin grenier mais lorsque je fais http://www.fortboyard.net/ecrire/?exec=convert_sql_utf8 j’ai toujours le même message Fichier convert_sql_utf8 introuvable.

      Quelle commande dois-je exécuter avec le plugin Grenier, je n’ai pas trouvé de tuto ?

      Merci d’avance,

      Aurélien

    • Salut, essaye avec ecrire/ ?exec=base_convert_sql_utf8 peut être.

      ++

    • Aurélien

      Bonjour,

      Merci de ta réponse.

      Cela a résolu mon problème et maintenant ma base est en UTF8, tout comme SPIP.

      Bonne journée,

      Aurélien

    • Bonjour
      J’ai aussi tenté cette manœuvre sur un spip 3.04 et une base de données de plus de 300 mégas. Tout se déroule bien avec Grenier mais au final, les articles en français disparaissent au premier accent. ceux en anglais ne sont pas touchés. un nouvel article apparaît très bien avec ses accents.
      voir le site : www.seasailsurf.fr
      Une idée pour retrouver l’intégralité des précédents articles et brèves (plus de 7000 pour plus de 10 ans d’archive) ?
      Par avance merci

    • As-tu une sauvegarde de ton site ? Si tu la mets dans un coin et que tu m’envoies l’adresse, je peux essayer de la récupérer ce we. => mail fil@rezo.net

    • Je cherche aussi une solution pour ce transcodage qui coupe les articles au premier accent.

      J’ai aussi essayé en intervenant sur le dump de la base, celon la méthose indiquée ici, celà donne exactement le même résultat.

      J’atteins mes limites là ; une piste ?

    • J’ai le même problème.
      J’ai fait la conversion avec grenier. mais je me retrouve avec des « Ã‰ » a la place de mes accents dans mes articles.
      Y a t’il moyen de corriger la base sans pour autant que les articles soient affecté de cette façon ?

    • Problème résolu en redéfinissant UTF-8 dans language du site

    Répondre à ce message

  • Bonjour,

    Une remarque sur la page de configuration qui permet de générer les index.
    Pour les documents, le champ « Contenu » n’est pas dans l’index, ce qui empêche l’indexation du contenu textuel des documents.
    Il faut ajouter ce champ et tout rentre dans l’ordre.

    Répondre à ce message

  • 3

    Bonjour,

    J’ai de gros problèmes de performances avec ce plugin dès que la recherche se fait sur plusieurs tables (spip 3.0.5, MySQL 5.1.49) :

    -  index fulltext uniquement sur la table articles :

    SELECT t.id_article, (MATCH(t.titre) AGAINST (’test’)) * 3.1 + MATCH(t.surtitre,t.titre,t.soustitre,t.chapo,t.texte,t.ps,t.nom_site,t.url_site,t.descriptif) AGAINST (’test’) AS score, t.popularite
    FROM pouet.spip_articles AS t WHERE t.statut=’publie’
    GROUP BY t.id_article ORDER BY score DESC LIMIT 0,500

    mon serveur MySQL prend 0,07 secondes a me renvoyer les resultats

    -  index fulltext sur articles + mots :

    SELECT t.id_article, (MATCH(t.titre) AGAINST (’test’)) * 3.1 + MATCH(t.surtitre,t.titre,t.soustitre,t.chapo,t.texte,t.ps,t.nom_site,t.url_site,t.descriptif) AGAINST (’test’)
    + IF(SUM(o2.score) IS NULL,0,SUM(o2.score)) AS score, t.popularite
    FROM pouet.spip_articles AS t
    LEFT JOIN ( SELECT lien2.id_objet,MATCH(obj2.titre) AGAINST (’test’) AS score FROM pouet.spip_mots_liens as lien2 JOIN pouet.spip_mots as obj2 ON obj2.id_mot=lien2.id_mot WHERE lien2.objet=’article’ ) AS o2 ON o2.id_objet=t.id_article
    WHERE t.statut=’publie’ GROUP BY t.id_article ORDER BY score DESC LIMIT 0,500

    prend 26,59 secondes.

    J’ai vérifié les ressources allouées a MySQL - il semble qu’il n’y a pas de problème a ce niveau-la.

    Quelqu’un a-t’il une expérience similaire ?

    Pour info,

    • ma db contient ± 11500 articles, 422 mots, et mots_lien contient ± 32000 entrees ...
    • oui, j’ai deja essayé de reconstruire les index

    Merci !

    Répondre à ce message

  • 1

    Bonjour,

    Impossible de faire une recherche, celle-ci prend au moins 30 sec, contrairement à la recherche intégrée à Spip. ça marchait beaucoup mieux avant la 3. J’ai fini par désactiver, en attendant de trouver une solution.

    • Bonjour,

      Problème réglé. J’ai supprimé tous les index, puis récréé. ça remarche, à priori :)

    Répondre à ce message

  • Bonjour,

    La version locale de mon site fonctionne parfaitement et Fulltext remplit parfaitement son rôle.
    Cependant, à la mise en ligne de celui-ci, chaque recherche me renvoie :

    Fatal error : Unsupported operand types in [racine]/plugins/auto/fulltext/inc/recherche_to_array.php on line 257

    Je suis hébergé en mutualisé chez OVH, la version de PHP en cours est la 5.

    Quelqu’un a t-il déjà rencontré ce genre d’erreur ?

    Répondre à ce message

  • Bonjour,

    j’ai installé ce plug-in sur mon SPIP 3.0, mis les tables en fulltext et dès que je fais une recherche dans le champ et bien ça cherche, ça cherche, ça cherche jusqu’à en faire tomber Apache !

    Avez-vous une idée d’où cela vient ?

    Merci

    Répondre à ce message

  • 1

    ça marche pô en spip3 ?

    Répondre à ce message

  • 2

    Bonjour,

    Sur un Spip 3.0.2 tout neuf, utilisation du squelette dist fournit,
    PHP Version 5.3.8
    MySQL Version 5.5.16

    Je rencontre 2 problèmes avec Fulltext
    -  Une recherche sur des mots contenu dans les documents indexés ne renvoi rien.
    pourtant la table spip_documents est bien renseignés avec le contenu de mes documents

    -  La recherche sans le + ou le - ne renvoit rien. Il faut toujours utiliser l’addition ou la soustraction

    Cordialement

    • pour la table document j’avais le meme probleme , en fait elle n’avait pas d’index fulltext
      j’ai du le faire avec phpmyadmin.

      sinon pour le + devant les recherches même problème pour moi ....

    • Bonjour,
      La construction de l’index avait était faite par le plugin ...
      mais ta réponse m’a intriguée .
      J’ai donc vérifié.Le champ contenu n’était pas dans l’index Tout.
      J’ai donc ajouté ce champ et c’est mieux.

      Il faut également penser à adapter la page recherche fournie par défaut.
      Il faut au minimum lui ajouter

      [(#REM) Documents trouves ]
      <B_documents>
      <div class="menu menu_articles">
      	#ANCRE_PAGINATION
      	<h2><:documents:> (#GRAND_TOTAL)</h2>
      	<ul class="spip">
      	<BOUCLE_documents(DOCUMENTS) {recherche} {!par points} {pagination 5}>
      		<li><a href="#FICHIER">#FICHIER</a></li>
      	</BOUCLE_documents>
      	</ul>
      	[<p class="pagination">(#PAGINATION)</p>]
      </div>
      </B_documents>

      Maintenant, ca fonctionne !

    Répondre à ce message

  • Bonjour,

    Depuis une mise à jour récente, la recherche d’un site était devenue très longue. Environ 8 à 14 secondes selon les résultats.

    Une fois le plugin Full Text désactivé, la recherche est largement plus rapide. Une idée ?

    Répondre à ce message

  • 2

    Salut,

    J’ai trouvé un truc qui ne fonctionne pas bien :
    J’ai un article qui s’appelle « Mémento des méthodes d’authentification par défaut des logiciels intranet communs ».
    Si je recherche le mot clé « authentification », l’article ne sort pas, si je recherche « d’authentification », l’article ressort...

    Y-a-t-il un moyen d’améliorer cela ?

    • J’ai le même comportement.

      Si je recherche « activité sociale » j’ai 55 résultats alors que si je recherche « l’activité sociale » j’en ai 236 et sans les guillemets activité sociale j’en ai 169.

      Comment modifier ce comportement ?

      Merci

    • C’est un bug de MySQL concernant les apostrophes dans les recherches fulltext.
      Il est résolu dans la version 5.1.6 de MySQL c.f. http://dev.mysql.com/doc/refman/5.1/en/news-5-1-6.html - 1er paragraphe

    Répondre à ce message

  • 1

    Bonjour, Après la mise à jour d’un site vers SPIP 3, je n’arrive pas à faire fonctionner Fulltext. Est-ce que ce plugin est censé être compatible ? (Il est dans la liste de plugins installables automatiquement.)

    • J’ai trouvé la source de mon problème. C’’etait une incompatibilité de squelette qui n’’etait pas lié au plugin.

    Répondre à ce message

  • Bonjour
    Après installation, petit souci d’accents sur les pages de configuration du plugin (uniquement sur ces pages)
    exemple :

    documents :Indexés : 0
    Non-indexés : 0
    Protégés (non-indexés) : 0

    Répondre à ce message

  • A l’aide !

    Bonjour !

    Merci pour le plugin ! J’ai cependant une question sur l’indexation des documents. Mon site est chez OVH. J’ai les accès ssh. Après ,où coller les fichiers pour les doc et les pdf ? Quels fichiers prendre ? Tout le répertoire téléchargé ?J’imagine les versions linux. Et enfin quel sera le chemin ?

    Merci d’avance de votre aide.

    Répondre à ce message

  • 2

    Bonjour,

    La recherche fulltext peut-elle fonctionner avec les champs IPTC, exif et tout champ de métadonnées des documents ?

    • pas directement, non ; si tu veux indexer ces champs il faut les « extraire » du fichier pour les recopier dans le champ « extrait » de la table spip_documents ; un mécanisme est prévu pour les fichiers pdf, doc et rtf, à étendre pour le cas qui t’intéresse : regarde dans le sous-répertoire extract/ du plugin

    • Bonjour,

      Je reviens sur cette idée qui me paraît très opportune.
      Exemple d’un site hébergeant de nombreux fichiers PDF. Ceux-ci comportent des métadonnées enrichies (titre, auteur, sujet, description)
      L’indexation fulltext par défaut (extract->contenu) pourrait être complétée d’une extraction des métadionnées dans le champ descriptiif (meta->descriptif si descriptif vide)
      xpdf->pdfinfo permet d’extraire facilement les métadonnées [pdfinfo ] ou [pdfinfo -meta ].
      Insérer les métadonnées dans le descriptif doit être relativement simple.
      Il suffirait ensuite d’ajouter à l’index fulltext document->titre une seconde colonne « descriptif » (ou créer un autre index)

      Par contre, n’étant pas développeur, je ne peux guère vous aider....

    Répondre à ce message

  • 2

    Salut,

    C’est vraiment pas cool d’avoir ajouté des fonctionnalités comme l’« Indexation du contenu textuel des documents », nécessitant PHP 5.2, en faisant des sauts de version du plugin sur le derniers digits (0.6.1 -> 0.6.8), même si c’est optionnel.

    En admettant que ce plugin ne soit toujours pas stable (il serait encore en développement, selon les fichiers xml... :p), un passage en 0.7 serait assez « signifiant » je trouve.

    • hum t’as perdu tes codes de commit ? :)

    • Oui :) ... (et je signale au passage un bug d’affichage quand on saisit moins de 10 caractères dans ce forum : on a la chaine « forum_attention_dix_caracteres » au lieu d’un libellé correct ...:P)

    Répondre à ce message

  • 1

    Bonjour,
    J’ai créé une table supplémentaire appelée spip_produits, qui est reconnue par TableData mais pas par Fulltext.
    Dans la structure de ma table, je vois ceci :

    Nom de l’index Type Cardinalité Champ
    PRIMARY PRIMARY 16787 ID
    tri INDEX 1 tri
    tout FULLTEXT 1 part_number
    manufacturer
    famille
    part_number FULLTEXT 1 part_number

    Il me semble donc que les index soient bien en place, non ?
    J’ajoute que le Moteur de stockage est bien réglé sur MyISAM.
    Comment dois-je procéder pour retrouver cette table dans la liste de la page de configuration du plugin ?

    Merci bôcoup !

    Répondre à ce message

  • Bonjour,

    Je rencontre une difficulté sur l’indexation des documents : le cron de l’indexation des documents ne semble pas se lancer, et il faut que je supprime le fichier temp/fulltext_index_document_lock à la main pour que l’indexation des documents se déclenche.

    Petites précisions :
    -  l’intervalle de temps pour l’indexation est réglé à 60 s pour les tests
    -  le problème est rencontré sur un site encore peu consulté car en développement, (mais la suppression de temp/fulltext_index_document_lock permet de déclencher)
    -  dans la fonction tmp/cache/charger_pipelines.fr, l’appel à la fonction Fulltext_taches_generales_cron, est avec un F en majuscule (issue du préfix du plugin , j’imagine), mais sa correction en minuscule à la main ne semble rien changer (dès fois que).

    Merci pour vos lumières.

    Pascal

    Répondre à ce message

  • Bonjour,

    Sur un SPIP 2.1.11 [18566] + FULLTEXTE Version : 0.6.4 [52790], une fois l’indéxation réalisée,, j’ai le message d’erreur suivant si la recherche porte sur un nombre :

    Sur la table article (le même sur la table rubrique)

    Erreur SQL 1064
    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 'IN BOOLEAN MODE)) + SUM(MATCH(obj2.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dGl0cmU8L2NvZGU+"></span>,obj2.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dGV4dGU8L2NvZGU+"></span>,obj2.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+ZGVzY3JpcHRpZjwvY29kZT4="></span>) AGAIN' at line 1
    SELECT t.id_article, MATCH(t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+c3VydGl0cmU8L2NvZGU+"></span>,t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dGl0cmU8L2NvZGU+"></span>,t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+c291c3RpdHJlPC9jb2RlPg=="></span>,t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+Y2hhcG88L2NvZGU+"></span>,t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dGV4dGU8L2NvZGU+"></span>,t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+cHM8L2NvZGU+"></span>,t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+bm9tX3NpdGU8L2NvZGU+"></span>,t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dXJsX3NpdGU8L2NvZGU+"></span>,t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+ZGVzY3JpcHRpZjwvY29kZT4="></span>) AGAINST ('123*' IN BOOLEAN MODE) * 1 + SUM(MATCH(obj1.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+bm9tPC9jb2RlPg=="></span>) AGAINST ( IN BOOLEAN MODE)) + SUM(MATCH(obj2.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dGl0cmU8L2NvZGU+"></span>,obj2.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dGV4dGU8L2NvZGU+"></span>,obj2.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+ZGVzY3JpcHRpZjwvY29kZT4="></span>) AGAINST ( IN BOOLEAN MODE)) + SUM(MATCH(obj3.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dGl0cmU8L2NvZGU+"></span>,obj3.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+ZGVzY3JpcHRpZjwvY29kZT4="></span>,obj3.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+Y29udGVudTwvY29kZT4="></span>,obj3.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+ZmljaGllcjwvY29kZT4="></span>) AGAINST ( IN BOOLEAN MODE)) AS score, t.popularite FROM spip_articles AS t LEFT JOIN spip_auteurs_articles as lien1 ON lien1.id_article=t.id_article LEFT JOIN spip_auteurs AS obj1 ON lien1.id_auteur=obj1.id_auteur LEFT JOIN spip_mots_articles as lien2 ON lien2.id_article=t.id_article LEFT JOIN spip_mots AS obj2 ON lien2.id_mot=obj2.id_mot LEFT JOIN spip_documents_liens as lien3 ON lien3.id_objet=t.id_article AND lien3.objet='article' LEFT JOIN spip_documents as obj3 ON obj3.id_document=lien3.id_document WHERE t.statut='publie' GROUP BY t.id_article ORDER BY score DESC LIMIT 0,500

    Répondre à ce message

  • Florence HENRY

    Bonjour,

    je viens d’installer fulltext version 0.6.4 sur un spip 2.1.10 (après une migration depuis spip 1.9.2, ça a peut-être son importance).

    Quand je crée les index proposés par défaut, celui sur les auteur plante avec le message d’erreur :
    Erreur 1283 de mysql : Column ’login’ cannot be part of FULLTEXT index

    Après un coup d’oeil dans MySQL, je vois que le champ login est de type varchar. Or il est dit dans la doc que seuls les champs de type text ou longtext supportent la recheche fultext.

    J’ai donc créé mon index à la main en supprimant le champ login :

    ALTER TABLE site_lesia.spip_auteurs ADD FULLTEXT tout (nom,bio,email,nom_site,url_site)

    Et ça marche bien.

    Y a-t-il des installation de SPIP où le champ login est de type text ?

    Répondre à ce message

  • Bonjour à tous !

    J’ai installé Fulltext 0.6.2 sur un site SPIP 2.1.10 ( 1.9.2 à l’origine).

    Aprés l’indexation depuis la page ecrire/ ?exec=fulltext, j’ai eu un message me disant quelque chose du genre ’le charset déclaré ne semble pas correspondre à celui de la base. Ceci peut entrainer des erreurs avec les caractères accentués’.
    En effet une recherche avec ’+mot1sansaccent +mot1sansaccent’ marche et pas ’+mot1avecaccent +mot1avecaccent’...
    Après quelques recherches, j’en ai conclu que c’était l’interclassement qui n’était pas bon : ’latin1_swedish_ci’ au lieu de ’utf8_general_ci’. J’ai donc changer l’intervclassement des tables et ça change rien... L’interclassement du contenu des tables est toujours en ’latin1_swedish_ci’, ceci expliquant sans doute cela !
    Voici donc mes questions :
    Est ce que tout mettre en ’utf8_general_ci’ réglera le problème ?
    Si oui comment faire ?
    Si non, est ce que quelqu’un à une solution ?

    Merci d’avance de votre aide !

    Gilles

    Répondre à ce message

  • Bonjour,

    lorsque je me rends sur la page ecrire/ ?exec=fulltext , je reçois le message d’erreur suivant :

    Fatal error : Call to undefined function : fulltext_keys() in /homez.221/anciensh/www/plugins/auto/fulltext/exec/fulltext.php on line 77

    Je suis sur Spip 2.1.10, avec du mysql 5 chez OVH.

    Avez-vous une idée ? Merci,

    Eric LM

    Répondre à ce message

  • Bonjour,

    j’essaie d’ajouter le champ « credits » des documents à la recherche.

    j’ai fait la commande sql :
    ALTER TABLE spip_documents ADD FULLTEXT credits (credits) ;

    sur la page ecrire/ ?exec=fulltext je vois que le champ « credits » a bien été ajouté à l’index mais lorsque je fais une recherche publique j’obtiens des erreurs sql (ici pour la recherche sur « ronan ») :

    Erreur SQL 1191
    Can't find FULLTEXT index matching the column list
    SELECT t.id_article, (MATCH(t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dGl0cmU8L2NvZGU+"></span>) AGAINST ('ronan')) * 3.1 + MATCH(t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+c3VydGl0cmU8L2NvZGU+"></span>,t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dGl0cmU8L2NvZGU+"></span>,t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+c291c3RpdHJlPC9jb2RlPg=="></span>,t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+Y2hhcG88L2NvZGU+"></span>,t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dGV4dGU8L2NvZGU+"></span>,t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+cHM8L2NvZGU+"></span>,
    t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+bm9tX3NpdGU8L2NvZGU+"></span>,t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dXJsX3NpdGU8L2NvZGU+"></span>,t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+ZGVzY3JpcHRpZjwvY29kZT4="></span>) AGAINST ('ronan') + SUM(MATCH(obj1.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+bm9tPC9jb2RlPg=="></span>) 
    AGAINST ('ronan')) + SUM(MATCH(obj2.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dGl0cmU8L2NvZGU+"></span>,obj2.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dGl0cmU8L2NvZGU+"></span>,obj2.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dGV4dGU8L2NvZGU+"></span>,obj2.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+ZGVzY3JpcHRpZjwvY29kZT4="></span>) AGAINST ('ronan')) + SUM(MATCH(obj3.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+Y3JlZGl0czwvY29kZT4="></span>,obj3.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dGl0cmU8L2NvZGU+"></span>,obj3.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dGl0cmU8L2NvZGU+"></span>,obj3.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+ZGVzY3JpcHRpZjwvY29kZT4="></span>,
    obj3.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+Y29udGVudTwvY29kZT4="></span>,obj3.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+ZmljaGllcjwvY29kZT4="></span>) AGAINST ('ronan')) AS score, t.popularite 
    FROM spip_articles AS t LEFT JOIN spip_auteurs_articles as lien1 ON lien1.id_article=t.id_article LEFT JOIN spip_auteurs AS obj1 ON lien1.id_auteur=obj1.id_auteur LEFT JOIN spip_mots_articles as lien2 ON lien2.id_article=t.id_article LEFT JOIN spip_mots AS obj2 ON lien2.id_mot=obj2.id_
    mot LEFT JOIN spip_documents_liens as lien3 ON lien3.id_objet=t.id_article AND lien3.objet='article' LEFT JOIN spip_documents as obj3 ON obj3.id_document=lien3.id_document WHERE t.statut='publie' 
    GROUP BY t.id_article ORDER BY score DESC LIMIT 0,500

    vu mes connaissances limitées en sql j’ai sans doute fait une erreur quelque part...

    dd

    Répondre à ce message

  • Bonjour
    je viens de faire l’installation en local avec spip 2.1.10 et le plugin fulltext
    je veux faire des recherches dans des pdfs ajoutés à des articles.
    Dans la table spip_documents il y a bien le contenu qui se rempli, donc ’mes options’ marche bien.
    je voulais savoir s’il faut faire quelque chose de spécial pour avoir le résultat des recherches avec les documents ?

    merci d’avance

    Répondre à ce message

  • Bonjour à tous !

    Je suis en spip 2.1.6 et j’ai installé le plugin. J’ai bien lu que le moteur ne prenait en compte que les mots de + de 4 lettres. Et pourtant on dirait qu’il marche même « trop » bien :
    il prend en compte les mots de deux lettres comme « de »

    Du coup on se retrouve avec des listes interminables de réponses dès qu’on tape une expression « alexa de paris »
    Par contre ça fonctionne très bien quand on ne tape qu’un nom propre.

    Répondre à ce message

  • zephdesign

    Si j’ai bien compris xpdf c’est pour extraire le contenu d’un docs (pdf) pour faire une recherche dedans.

    Je ne peux pas l’installé sur mon serveur. bref

    Mais j’ai vu qu’on pouvais indexer : titres et descriptifs des documents....

    Donc est il possible de pouvoir faire une recherche sur les documents grâce à leurs titres et à leurs descriptifs indexer ? Donc sans utiliser xpdf

    Répondre à ce message

  • 10
    nathbni

    Bonjour,
    Mon essai de fulltext sur un pdf (catalogue de pièces, 36 ko) est laborieuse et j’ai besoin d’aide.
    J’ai installé Fulltext, juste là ... çà va...

    Je n’ai pas vraiment saisi à quel endroit je dois installer Xpdf ? La doc mentionne ce chemin : /usr/bin/xpdf, mais n’ayant pas accès à ces dossiers sur mon serveur (sfr perso), j’ai créé un dossier à la racine de mon site (donc, au même niveau que /config ou /squelettes) que j’ai nommé xpdf. Du coup, me trompe-je si j’écris ceci dans mes_options.php ? :

    define('_FULLTEXT_TAILLE', '50000');
    define('_FULLTEXT_PDF_EXE', '/xpdf/pdftotext');

    Je suis allée voir dans la page du plugin et j’ai créé « tous les index suggérés » et comme j’avais ’err’ dans les champs ’Extrait’, j’ai cliqué sur « Réinitialiser l’indexation des documents en erreur ».
    Malgré tout cela, une foulure à l’index et beaucoup de patience, les champs « contenu » de ma table spip_documents sont désespérément vides et « extrait » reste à « non ».
    Il me semble donc que l’extraction ne se fait pas, mais pourquoi donc ?? Merci d’avance ;-)

    • nathbni

      Petite précision, il y a peut-être un pb de version. Dans Phpmyadmin, je lis ceci :
      « Serveur : 10.111.145.45 via TCP/IP
      Version du serveur : 5.0.32-Debian_7etch5-log
      Jeu de caractères pour MySQL : UTF-8 Unicode (utf8) »

      Debian, c’est Linux ? Quel fichier dois-je télécharger ? Je n’y comprends rien

    • Çà ne marche toujours pas. J’ai bien Xpdf installé (version pour Debian) mais malgré cela le contenu du pdf n’apparaît pas dans PhpMyAdmin et la colonne extrait indique « non », voire « err » parfois.
      S’agit-il d’un pb d’hébergeur (SFR pages perso) ?
      S’agit-il d’un pb de poids de fichier ? Toutes les pistes que je suis pour mon histoire de stock butent sur ce fichu pb de poids, de mémoire de calcul.
      Est-ce que quelqu’un a une idée pour faire fonctionner Fulltext sur mon pdf ? Mille mercisssss.

    • Est-ce que par hasard tes PDF seraient protégés contre la copie ?

    • Je ne sais pas trop : il a été généré par OpenOffice. On voit çà comment ? Parce que dans les propriétés du fichier, rien n’indique une telle info.

    • Dans OpenOffice, le paramètre « Autoriser la copie de contenu » est bien coché.

    • Est-ce que dans tmp/extract.log tu as le message « Erreur extraction PDF : Le fichier texte n’existe pas ou n’est pas lisible. » ?

      Est-ce que tu peux essayé d’exécuter directement pdftotext sur ton fichier ?

    • J’ai bien ceci dans mon extract.log
      Echec de l’extraction de IMG/pdf/stock.pdf
      Par contre, comment fait-on pour exécuter directement pdftotext ? question sans doute stupide... désolée !

    • Voici le contenu exact de extract.log :

      Mar 16 11:03:39 77.196.142.213 (pid ) Indexation de csv/ADIC.csv
      Mar 16 11:03:39 77.196.142.213 (pid ) Impossible d'indexer tous les .csv
      Mar 16 11:03:39 77.196.142.213 (pid ) il reste des docs a indexer...
      Mar 16 11:03:44 77.196.142.213 (pid ) Indexation de pdf/STOCKBPMSITE.pdf
      Mar 16 11:03:44 77.196.142.213 (pid ) Echec de l'extraction de IMG/pdf/STOCKBPMSITE.pdf
      Mar 16 11:03:44 77.196.142.213 (pid ) Indexation de gif/iconPdf-2.gif
      Mar 16 11:03:44 77.196.142.213 (pid ) Impossible d'indexer tous les .gif
      Mar 16 11:03:44 77.196.142.213 (pid ) Indexation de gif/iconPdf.gif
      Mar 16 11:03:44 77.196.142.213 (pid ) Impossible d'indexer tous les .gif

      J’ai copié le dossier Xpdf dans Program files, et j’ai essayé d’exécuter pdftotext depuis la commande exécuter ainsi :
      « C :\Program Files\Xpdf\pdftotext.exe » « C :\Utilisateurs\MonNom\Dossier\STOCKBPMSITE.pdf »
      Mais rien ne se passe ensuite : un fichier devrait apparaître, non ?

    • Ah, je ne savais pas que ça existe aussi pour Windows, je n’ai jamais testé.

      Rien n’est indiqué dans le résultat de ta commande ? Aucun message ?

    • Non. Le pavé noir apparait 1/2 seconde et je ne vois rien arriver ensuite... Pff... pourtant, je fais des efforts !! Merci en tout cas, Nicolas...
      Tu ne saurais pas répondre à mes pb d’itérateurs, par hasard ?!... Il s’agit sans doute d’une ligne de code toute bête, mais je n’ai aucune compétence (ou si peu) en php-sql. Cà me permettrait de laisser tomber fulltext et d’offrir un résultat de recherche plus complet.

    Répondre à ce message

  • 1

    Bonjour,
    Je suis avec intérêt le développement de ce plugin. Êtes-vous sur une piste pour permettre la recherche dans un document csv ? Parce que j’ai un stock de plus de 12000 pièces à afficher (sans gestion de boutique, juste l’affichage). Et comme j’utilise la fonction désormais intégrée d’affichage des csv dans les articles, ce serait l’idéal de pouvoir proposer une fonction de recherche dans ces docs, isn’t it ?
    Merci et bon courage ;-)

    • Oui il suffirait d’ajouter un « extracteur » (une fonction PHP lisant le CSV et en extrayant le contenu textuel). C’est a priori assez facile car le texte est « en clair » dans les CSV.

    Répondre à ce message

  • Bonjour,

    et merci pour ce plugin.

    Personnellement j’ai aussi du gérer ft_stopword_file pour adapter la recherche à mon contenu français. Dans sa version de base le moteur ne trouve pas, par exemple, le mot ’seven’ qui est un mot trop courant en anglais. En adaptant la liste des mots, on corrige ce problème.

    ft_min_word_len=3
    ft_stopword_file=/etc/mysql/stopwords.fr.txt

    encore merci

    Répondre à ce message

  • aloa, y a t-il d’autres possibilités d’extraction que pdf ?
    « La recherche s’effectuera aussi dans le contenu des documents (formats pris en charge : PDF, RTF, DOC, DOCX, ODT,XLS, XLSX, CSV, ODS, PPT, PPTX, ODP). »
    merci

    Répondre à ce message

  • 1

    Bonjour,

    J’ai installé la version 0.3 [40755] sur un SPIP 2.1.2 [16017] .

    Mon problème concerne la recherche sur le contenu de documents pdf, sachant que :

    -  le contenu du pdf a bien été importé dans le champ « contenu » de spip_documents
    -  le champ « extrait » est bien à « oui »
    -  tous les champs sont indexés
    -  j’ai bien rajouté une boucle documents au fichier du résultat de recherche (recherche.html)

    La recherche sur un mot contenu dans le pdf ne donne aucun résultat.

    Ai-je oublié quelque chose ?

    Merci pour votre réponse.

    Pour info, ci-joint le log, ma recherche porte sur le mot « fichier » contenu dans un pdf (le mot « fichier » est bien dans le champ contenu du doc) :

    Jan 07 18:11:12 192.168.0.10 (pid 27975) fulltext auteur: tout, nom
    Jan 07 18:11:12 192.168.0.10 (pid 27975) (MATCH(t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+bm9tPC9jb2RlPg=="></span>,t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+YmlvPC9jb2RlPg=="></span>,t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+ZW1haWw8L2NvZGU+"></span>,t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+bm9tX3NpdGU8L2NvZGU+"></span>,t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dXJsX3NpdGU8L2NvZGU+"></span>) AGAINST ('fichier')) * 1.4 + (MATCH(t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+bm9tPC9jb2RlPg=="></span>) AGAINST ('fichier')) * 5 AS score
    Jan 07 18:11:12 192.168.0.10 (pid 27975) 0 
    
    Jan 07 18:11:12 192.168.0.10 (pid 27975) recherche auteur (fichier) : 0 resultats 6.249 ms
    Jan 07 18:11:12 192.168.0.10 (pid 27975) fulltext article: tout, titre
    Jan 07 18:11:12 192.168.0.10 (pid 27975) fulltext auteur: tout, nom
    Jan 07 18:11:12 192.168.0.10 (pid 27975) fulltext mot: tout, titre
    Jan 07 18:11:12 192.168.0.10 (pid 27975) fulltext document: tout, titre
    Jan 07 18:11:12 192.168.0.10 (pid 27975) (MATCH(t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+c3VydGl0cmU8L2NvZGU+"></span>,t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dGl0cmU8L2NvZGU+"></span>,t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+c291c3RpdHJlPC9jb2RlPg=="></span>,t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+Y2hhcG88L2NvZGU+"></span>,t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dGV4dGU8L2NvZGU+"></span>,t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+cHM8L2NvZGU+"></span>,t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+bm9tX3NpdGU8L2NvZGU+"></span>,t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+ZGVzY3JpcHRpZjwvY29kZT4="></span>) AGAINST ('fichier')) * 1.1 + (MATCH(t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dGl0cmU8L2NvZGU+"></span>) AGAINST ('fichier')) * 8 + SUM(MATCH(obj1.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+bm9tPC9jb2RlPg=="></span>,obj1.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+YmlvPC9jb2RlPg=="></span>,obj1.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+ZW1haWw8L2NvZGU+"></span>,obj1.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+bm9tX3NpdGU8L2NvZGU+"></span>,obj1.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dXJsX3NpdGU8L2NvZGU+"></span>) AGAINST ('fichier')) + SUM(MATCH(obj2.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dGl0cmU8L2NvZGU+"></span>,obj2.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dGV4dGU8L2NvZGU+"></span>,obj2.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+ZGVzY3JpcHRpZjwvY29kZT4="></span>) AGAINST ('fichier')) + SUM(MATCH(obj3.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dGl0cmU8L2NvZGU+"></span>,obj3.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+ZGVzY3JpcHRpZjwvY29kZT4="></span>,obj3.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+Y29udGVudTwvY29kZT4="></span>,obj3.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+ZmljaGllcjwvY29kZT4="></span>) AGAINST ('fichier')) AS score
    Jan 07 18:11:12 192.168.0.10 (pid 27975) 0 
    
    Jan 07 18:11:12 192.168.0.10 (pid 27975) recherche article (fichier) : 0 resultats 7.360 ms
    Jan 07 18:11:12 192.168.0.10 (pid 27975) fulltext rubrique: tout, titre
    Jan 07 18:11:12 192.168.0.10 (pid 27975) fulltext mot: tout, titre
    Jan 07 18:11:12 192.168.0.10 (pid 27975) fulltext document: tout, titre
    Jan 07 18:11:12 192.168.0.10 (pid 27975) (MATCH(t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dGl0cmU8L2NvZGU+"></span>,t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+ZGVzY3JpcHRpZjwvY29kZT4="></span>,t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dGV4dGU8L2NvZGU+"></span>) AGAINST ('fichier')) * 1.8 + (MATCH(t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dGl0cmU8L2NvZGU+"></span>) AGAINST ('fichier')) * 8 + SUM(MATCH(obj1.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dGl0cmU8L2NvZGU+"></span>,obj1.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dGV4dGU8L2NvZGU+"></span>,obj1.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+ZGVzY3JpcHRpZjwvY29kZT4="></span>) AGAINST ('fichier')) + SUM(MATCH(obj2.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dGl0cmU8L2NvZGU+"></span>,obj2.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+ZGVzY3JpcHRpZjwvY29kZT4="></span>,obj2.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+Y29udGVudTwvY29kZT4="></span>,obj2.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+ZmljaGllcjwvY29kZT4="></span>) AGAINST ('fichier')) AS score
    Jan 07 18:11:12 192.168.0.10 (pid 27975) 0 
    
    Jan 07 18:11:12 192.168.0.10 (pid 27975) recherche rubrique (fichier) : 0 resultats 5.307 ms
    Jan 07 18:11:12 192.168.0.10 (pid 27975) fulltext mot: tout, titre
    Jan 07 18:11:12 192.168.0.10 (pid 27975) (MATCH(t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dGl0cmU8L2NvZGU+"></span>,t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dGV4dGU8L2NvZGU+"></span>,t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+ZGVzY3JpcHRpZjwvY29kZT4="></span>) AGAINST ('fichier')) * 1.8 + (MATCH(t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dGl0cmU8L2NvZGU+"></span>) AGAINST ('fichier')) * 8 AS score
    Jan 07 18:11:12 192.168.0.10 (pid 27975) 0 
    
    Jan 07 18:11:12 192.168.0.10 (pid 27975) recherche mot (fichier) : 0 resultats 3.432 ms
    Jan 07 18:11:12 192.168.0.10 (pid 27975) fulltext breve: tout, titre
    Jan 07 18:11:12 192.168.0.10 (pid 27975) fulltext mot: tout, titre
    Jan 07 18:11:12 192.168.0.10 (pid 27975) fulltext document: tout, titre
    Jan 07 18:11:12 192.168.0.10 (pid 27975) (MATCH(t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dGl0cmU8L2NvZGU+"></span>,t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dGV4dGU8L2NvZGU+"></span>,t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+bGllbl90aXRyZTwvY29kZT4="></span>,t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+bGllbl91cmw8L2NvZGU+"></span>) AGAINST ('fichier')) * 1.5 + (MATCH(t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dGl0cmU8L2NvZGU+"></span>) AGAINST ('fichier')) * 8 + SUM(MATCH(obj1.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dGl0cmU8L2NvZGU+"></span>,obj1.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dGV4dGU8L2NvZGU+"></span>,obj1.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+ZGVzY3JpcHRpZjwvY29kZT4="></span>) AGAINST ('fichier')) + SUM(MATCH(obj2.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dGl0cmU8L2NvZGU+"></span>,obj2.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+ZGVzY3JpcHRpZjwvY29kZT4="></span>,obj2.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+Y29udGVudTwvY29kZT4="></span>,obj2.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+ZmljaGllcjwvY29kZT4="></span>) AGAINST ('fichier')) AS score
    Jan 07 18:11:12 192.168.0.10 (pid 27975) 0 
    
    Jan 07 18:11:12 192.168.0.10 (pid 27975) recherche breve (fichier) : 0 resultats 5.502 ms
    Jan 07 18:11:12 192.168.0.10 (pid 27975) fulltext forum: tout, titre
    Jan 07 18:11:12 192.168.0.10 (pid 27975) (MATCH(t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dGl0cmU8L2NvZGU+"></span>,t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dGV4dGU8L2NvZGU+"></span>,t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+YXV0ZXVyPC9jb2RlPg=="></span>,t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+ZW1haWxfYXV0ZXVyPC9jb2RlPg=="></span>,t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+bm9tX3NpdGU8L2NvZGU+"></span>,t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dXJsX3NpdGU8L2NvZGU+"></span>) AGAINST ('fichier')) * 1.2 + (MATCH(t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dGl0cmU8L2NvZGU+"></span>) AGAINST ('fichier')) * 3 AS score
    Jan 07 18:11:12 192.168.0.10 (pid 27975) 0 
    
    Jan 07 18:11:12 192.168.0.10 (pid 27975) recherche forum (fichier) : 0 resultats 3.421 ms
    Jan 07 18:11:12 192.168.0.10 (pid 27975) fulltext site: nom_site, tout
    Jan 07 18:11:12 192.168.0.10 (pid 27975) (MATCH(t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+bm9tX3NpdGU8L2NvZGU+"></span>) AGAINST ('fichier')) * 5 + (MATCH(t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+bm9tX3NpdGU8L2NvZGU+"></span>,t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dXJsX3NpdGU8L2NvZGU+"></span>,t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+ZGVzY3JpcHRpZjwvY29kZT4="></span>) AGAINST ('fichier')) * 1.8 AS score
    Jan 07 18:11:12 192.168.0.10 (pid 27975) 0 
    
    Jan 07 18:11:12 192.168.0.10 (pid 27975) recherche site (fichier) : 0 resultats 3.650 ms
    Jan 07 18:11:12 192.168.0.10 (pid 27975) fulltext document: tout, titre
    Jan 07 18:11:12 192.168.0.10 (pid 27975) fulltext mot: tout, titre
    Jan 07 18:11:12 192.168.0.10 (pid 27975) (MATCH(t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dGl0cmU8L2NvZGU+"></span>,t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+ZGVzY3JpcHRpZjwvY29kZT4="></span>,t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+Y29udGVudTwvY29kZT4="></span>,t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+ZmljaGllcjwvY29kZT4="></span>) AGAINST ('fichier')) * 1.5 + (MATCH(t.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dGl0cmU8L2NvZGU+"></span>) AGAINST ('fichier')) * 3 + SUM(MATCH(obj1.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dGl0cmU8L2NvZGU+"></span>,obj1.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dGV4dGU8L2NvZGU+"></span>,obj1.<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+ZGVzY3JpcHRpZjwvY29kZT4="></span>) AGAINST ('fichier')) AS score
    Jan 07 18:11:12 192.168.0.10 (pid 27975) 0 
    
    Jan 07 18:11:12 192.168.0.10 (pid 27975) recherche document (fichier) : 0 resultats 4.554 ms
    • Salut vero,

      S’il y a une erreur SQL, elle devrait normalement se retrouver dans tmp/recherche.log ; donc ici il semble que la requête est bonne... je ne vois pas ce qui peut clocher (d’autant que, chez moi, ça marche).

    Répondre à ce message

  • Je suis enthousiasmé par ce plugin, la recherche dans les contenus syndiqués fonctionne, c’est un plus. J’essaye de faire fonctionner la recherche dans les fichiers pdf joints aux articles, cela enrichirait pas mal les réponses aussi. Mais je n’y arrive pas (encore).
    Voici ce que j’ai fait :
    -  SPIP 2.1.2 [16017] est installé en mutualisé
    -  Fulltext : 407552010-09-14 08:10:59 +0200
    -  mes_options.php :

    <?php
    define ('_ID_WEBMESTRES', '1:12');
    
     define('_FULLTEXT_TAILLE', '50<code>000');
     define('_FULLTEXT_PDF_EXE', '/usr/bin/pdftotext');
     define('_FULLTEXT_PDF_CMD_OPTIONS', '-enc UTF-8');
    ?>

    Je suis sur un ubuntu et le fichier ’/usr/bin/pdftotext’ existe bien sur mon serveur
    -  page revisitée http://monsite.net/ecrire/?exec=fulltext&regenerer=tous

    Mais la recherche ne sort rien des fichiers pdf et la Table : spip_documents a une colonne : « extraits » à « non » pour tous les documents.

    -  Faut il que je patiente le temps que cron fasse tourner l’indexation ?
    -  Est ce une difficulté liée à l’installation en mutualisé (j’ai déja eu à remercier d’autres développeurs de plugins d’avoir retravaillé leur code à cause de cette mutualisation)
    -  Ais je oublié quelque chose ?

    Répondre à ce message

  • 1

    Merci pour la réponse à ma précédente question.

    J’en profite pour en poser une nouvelle. Un précédent plugin, Indexation, proposait une balise #EXTRAIT pour afficher la portion de texte où apparaissait le terme de recherche. Est-il possible d’intégrer une telle balise pour le plugin FullText ?

    Merci encore.

    • A ma connaissance la commande FULLTEXT de MySQL n’offre pas d’extrait. Il est donc « logique » que ce plugin ne le propose pas. Mais tu peux bien entendu recopier le code de l’autre plugin et l’importer dans celui-ci, pour en enrichir les possibilités.

    Répondre à ce message

  • 1

    Bonjour,
    j’aimerais que la recherche soit effectuée également sur le nom physique des fichiers présents dans la table documents. Pour cela, j’ai modifié l’index ’tout’ de la table documents en intégrant le champ ’fichier’.
    Je souhaiterais que la recherche soit effectuée sur ce champ avec un critère LIKE %%. C’est à dire que si je fais une recherche avec « test », le document « monfichier-test-version2.pdf » soit retourné dans les résultats. Je n’arrive pas à obtenir un tel résultat. Est-il possible de faire cela ?
    Merci.

    • Non, ça ne peut pas fonctionner comme ça, car on utilise la commande FULLTEXT de MySQL. Cependant tu peux peut-être ajouter un champ à la table (et à l’index FULLTEXT), et le remplir régulièrement avec les « mots » du nom du fichier.

    Répondre à ce message

  • 1

    Bonjour,

    Est-ce que ce plugin permet de retrouver un article qui aurait deux mots clés par ex ?

    Une recherche : +motclé1 +motclé2
    retournera-t-elle les articles ayant ces deux mots clés ?

    Je pose la question car je n’ai pas réussi à mettre cela en évidence.

    Beru

    • Non, ça ne fait pas encore partie de ses possibilités ; j’aimerais pouvoir y retravailler

    Répondre à ce message

  • 6

    Bonjour,

    Y a -t-il qq chose à faire pour que cette recherche fulltexte se fasse aussi sur les champs extra ?

    Beru

    • Il suffit d’intégrer ces champs dans un des index fulltext définis sur cette table dans MySQL. (Ou de créer un index fulltext sur ce champ.)

    • Merci de cette réponse rapide.

      Veux-tu dire qu’il faut utiliser PHPMy admin pour intervenir ?
      Je ne vois pas ce qu’est un index fulltexte.

      Y’a une petite procédure écrite quelque part que je n’aurais pas vu ?

      Beru

    • En effet : cherche « créer un index FULLTEXT » dans l’article ci-dessus :-)

    • Oui, j’ai lu cela.
      Mais dans PhpMyadmin, je ne vois rien qui fait référence à ces index.

      Et dans l’admin de Spip, « /ecrire/ ?exec=fulltext » , il n’est pas proposé de créer des index pour les champs extra ; mais juste pour les champs spip.

      Quelque chose doit m’échapper.

    • Il faut entrer dans phpmyadmin la commande indiquée :

      ALTER TABLE spip_articles ADD FULLTEXT <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dGl0cmFpbGxlczwvY29kZT4="></span>
        (<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+c3VydGl0cmU8L2NvZGU+"></span>,<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+dGl0cmU8L2NvZGU+"></span>,<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+c291c3RpdHJlPC9jb2RlPg=="></span>,<span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+Y2hhcG88L2NvZGU+"></span>);

      en remplaçant titrailles par ce que tu veux, et en ajoutant tes champs extras dans la listes des champs.

    • Ok !

      Ca peut donner cela :

      ex :
      ALTER TABLE spip_articles ADD FULLTEXT titre-choisi
      (`chp-extra1’, ’chp-extra2’, etc... )

      Si j’ai tout compris.

      Merci

    Répondre à ce message

  • 1

    Bonjour,

    J’ai installé le plugin (v0.3) et dans l’espace privé les tables sont listées mais elles ont toutes la mention « table non reconnue. » (spip 2.1.2)

    Une idée...? Merci !

    • Je m’auto répond car j’ai trouvé : le plugin ne fonctionne pas avec MySql 4. Je suis passé à MySql 5 et c’est bon.

    Répondre à ce message

  • 1

    2 choses qui me laissent quelques peu perplexes sur la doc :

    je me demande s’il n’y a pas une erreur ici :

    Permettre à l’utilisateur de déterminer le corpus de recherche
    .../...
    Puis, dans notre fichier recherche_fonctions.php :

    Ne fallait-il pas là lire formulaires/recherche.php tout court ? J’ai un doute là, ou alors c’est qu’il manque une étape d’explication à ma compréhension ???


    Ensuite, serait-il possible d’avoir un petit décryptage PHP sur ce que fait exactement cette fonction :

    if ( _request('recherche_date') && preg_match('/\d{4}/', _request('recherche_date')) ) {
       $limite = _request('recherche_date');
       define('_FULLTEXT_WHERE_article', 't.date>"' . $limite . '"');
       define('_FULLTEXT_WHERE_rubrique', 't.date>"' . $limite . '"');
       define('_FULLTEXT_WHERE_document', 't.date>"' . $limite . '"');
    }

    Ce juste histoire de voir comment l’adapter à autre chose que la date

    (là je bosse sur une recherche multi-critère se basant sur des champs extras en grand nombre + une recherche spécifique sur des références alpha-numériques incluses dans les articles et qu’il faudrait pouvoir remonter aussi, bien que pour la plupart elles ne contiennent qu’1 ou 2 caractères (ex : 6F ou 15CT ....) )

    • Bonjour,

      Où doit-on mettre le fichier recherche_fonctions.php ou comme le mentionne Loiseau2nuit, ne serait-ce pas plutôt formulaires/recherche.php. Dans un cas, comme dans l’autre, ça ne semble pas fonctionner.

      Je passe en paramètre dans mon formulaire<input type="hidden" name="recherche_date" value="2004"  />, mais lorsque je lance la recherche, j’ai des résultats ayant l’année 2008 comme date.

      Des idées ?

      Merci

    Répondre à ce message

  • 1

    Bonjour,

    Je viens d’installer le plugin Fulltext. Ensuite je vais dans « Configuration > Fulltext », et là j’ai le message « Page réservée aux webmestres ».

    Je suis pourtant administrateur du site. Une idée ?

    Spip 2.0.1

    • Bonjour,

      Le webmestre du site est par défaut l’auteur 1.

      Vous pouvez installer le plugin Couteau Suisse et ajouter votre numéro d’auteur à la liste des webmestres (dans la section Administration du plugin).

      Bonne journée

    Répondre à ce message

  • Bonjour !
    Est-ce que ce plugin offre la possibilité de restreindre la recherche à une seule rubrique ou à une seul article ? Et dans ce cas, comment faire ? (j’ai en effet un import de stock contenant 10000 références et je souhaite proposer un moteur de recherche uniquement dans cette liste. A priori, je pensais simplement intégrer mon csv comme document pour en faire un article).
    Merci d’avance.

    Répondre à ce message

  • Merci aux auteurs pour leur excellent plugin.

    Une question toutefois : lorsque la recherche utilise le métacaractère * (par ex. Géogra*), les mots trouvés ne sont pas surlignés dans les pages de résultats.
    Par contre avec un mot entier (Géographie par ex) les mots trouvés sont bien surlignés.

    Est-ce normal ?

    Répondre à ce message

  • je n’avais pas de boucle dans mon fichier recherche.html.
    j’ai rajouté la boucle mais je n’ai toujours rien.
    mon fichier pdf est bien importé dans le champs contenu de la table documents.
    j’ai SPIP2.1.2

    merci

    Répondre à ce message

  • 1

    Dans quelle fichier dois être placé cette boucle ?

    Merci pour votre réponse

    Répondre à ce message

  • 1

    Bonjour,
    j’ai installé se plugin, l’utilitaire xpdf importe les fichiers pdf dans ma table documents.
    tout semble bien fonctionner, mais quand je fait une recherche dans le moteur de recherche SPIP à l’interieur des fichier pdf, je n’ai aucun resultat

    • As-tu bien une <BOUCLE_d(DOCUMENTS){recherche}> ? Sinon il faudrait donner un peu plus de détails...

    Répondre à ce message

  • Bonjour !

    J’ai un problème pour communiquer le contexte de la langue pour #AIDE_RECHERCHE (en SPIP 2.1 SVN).

    Pour reproduire : faire un squelette inc-searchhelp.html qui contient :
    <BOUCLE_help(RUBRIQUES){lang}{0,1}>#AIDE_RECHERCHE</BOUCLE_help>
    et l’appeler avec la ligne ... /spip.php?page=inc-searchhelp&lang=fr en variant le code de langue. Et ça ne marche pas. Pour que cela marche avec fiabilité il faut ajouter &var_mode=recalcul (et non pas seulement « calcul ») dans l’URL. Ce qui n’est pas normal je trouve (?)

    Répondre à ce message

  • bonjour,

    je voulais juste dire que ce plugin est de la balle.

    Merci !

    Répondre à ce message

  • Bonjour, ce plugin est certainement très utile, mais il refuse de fonctionner dans le cadre d’un site mutualisé : il apparaît bien dans la liste des plugins du site, mais l’appel à la page ?exec=fulltext aboutit à Erreur : fichier fulltext introuvable ...

    Un moyen d’arranger cela ?

    Marc

    Répondre à ce message

  • Bonjour à tous.
    Sympa comme plugin. Cependant y a t’il moyen de rajouter des tables supplémentaires et des champs supplémentaires dans la recherche ?
    Merci.

    Répondre à ce message

  • Je suis très intéressé par ce plugin et principalement la recherche dans les pdf cependant comme beaucoup je ne comprends pas du tout la partie « installation » et principalement l’installation de Xpdf. Installé ou ? comment ? etc...
    Ça serait vraiment super qu’une personne complète cette partie car je pense que la contribution n’en serait que plus intéressante.

    Merci, d’avance Mathieu.

    Répondre à ce message

  • Bonjour !

    N’étant pas familier avec PHP et la syntaxe pour mes_options.php n’étant pas précisée ici, je viens vous demander si je ne fais pas une bêtise en définissant ainsi les constantes :

    <?php
      define('_FULLTEXT_TAILLE', '50000');
    ?>

    ou (avec indexation des pdf)

    <?php
      define('_FULLTEXT_TAILLE', '50000');
      define('_FULLTEXT_PDF_EXE', '/usr/bin/xpdf/pdftotext');
      define('_FULLTEXT_PDF_CMD_OPTIONS', '-enc UTF-8');
    ?>

    Merci d’avance !

    Répondre à ce message

  • 2
    Philippe G.

    Bonjour,
    J’ai un sacré problème, le plugin m’ayant demandé de convertir ma base en utf-8 (pourtant elle y est déjà), j’ai cliqué, me disant qu’il y avait bien une raison pour qu’on me demande cela. le résultat est catastrophique, naturellement. Y a-t-il un moyen de revenir en arrière, sachant que je n’ai pas fais de sauvegarde (erreur que je ne fais pourtant jamais !) ?
    Merci d’avance.
    Philippe

    • Normalement la procédure de conversion utf8 écrit un backup de la base dans le répertoire tmp/

      Cela dit ce n’est peut-être pas si « catastrophique » que cela ; fais un dump SQL de ta base, de manière à pouvoir le cas échéant la récupérer

    • Philippe G.

      J’avais un souci de recherche infructueuse sur les mots comprenant des caractères accentués depuis quelque temps, que je pensais résoudre en suivant les indications données ici :

      http://benjamin.sonntag.fr/Resolu-Probleme-de-recherche-avec-accents-dans-Spip#forum339

      J’ai subi un échec à l’importation de ma base corrigée, puis, après sauvegarde, ai décidé de faire confiance à la correction proposée par FULLTEXT, malgré ta mauvaise expérience.

      Résultat : impeccable, la base a été convertie, aucun souci.

      Merci FULLTEXT, qui a incidemment réglé un souci que je ne comprenais pas.

      Christophe

    Répondre à ce message

  • Bonjour,
    il y avait une balise #EXTRAIT avec le plugin Indexation qui permettait d’afficher dans les résultats de recherche l’extrait où se trouvait le mot recherché.
    Il me semble que cette balise n’est plus disponible avec le plugin Fulltext ? Y’a-t-il un autre moyen d’arriver au même résultat ?
    Merci beaucoup !

    Répondre à ce message

  • 6

    Bonjour et merci pour cette fonctionnalité avancée.

    J’ai installé XPDF sur mon serveur, ensuite j’ai ajouté dans le fichier mes_options.php la ligne suivante :

    define('_FULLTEXT_PDF_EXE', '/usr/bin/pdftotext');

    Maintenant comment faire pour que les contenus des documents PDF déjà présents dans mon site soient indexés ?
    Comment savoir aussi ceux qui le sont déjà ou pas ?

    Merci par avance.

    • L’info est dans la base, les docs ont un statut d’indexation qui vaut « oui » s’ils sont indexés, « non » s’ils sont en attente de passage du génie, et « err » s’ils n’ont pas pu être indexés, soit à cause d’une erreur soit à cause de l’absence d’un extracteur.

      On va ajouter une page permettant de relancer l’indexation de ceux qui sont en erreur.

    • bonjour
      moi je n’arrive pas à trouver le fichier mes_options.php, merci de m’indiquer ce chemin et aussi les différentes étapes à suivre après l’installation de xpdf et fulltext pour commencer l’indexation

    • bonjour moi je n’arrive pas à trouver le fichier mes_options.php, merci de m’indiquer ce chemin

      mes_options.php se trouve dans le répertoire /config à la racine de ton spip.

      Ce fichier n’existe pas par défaut, il faut donc le créer au besoin.

      ... et aussi les différentes étapes à suivre après l’installation de xpdf et fulltext pour commencer l’indexation

      ca par contre, je laisse à d’autres le soin de t’expliquer ça, moi je n’en suis pas encore là dans mon analyse de Fulltext

    • Merci pour votre réponse effectivement ce fichier ne figure pas dans le répertoire config donc pour le crée j’aurai besoin de son contenu, merci de me transmettre le contenu de ce fichier

    • Euh oui mais non. Son contenu dépend essentielement de la configuration dont TU as besoin. Je peux bien te filer le contenu d’un des miens de fichier mais ca ne t’avanceras absoluement à rien.

      Et pour ce qui concerne le cadre propre à FullText, ce que doit contenir le mes_options.php est déjà indiqué dans l’article ;-)

    • merci pour votre réponse, mais j’aurai besoin du contenu de l’un de vos fichier pour avoir une idée sur le contenu de ce fichier, et merci

    Répondre à ce message

  • 1

    Bonjour,

    est-ce que l’activation du plug-in permet d’en avoir également l’usage dans la partie privée ?

    merci

    Répondre à ce message

  • 1

    Merci pour cette précision.

    Dans le fichier « extract.log » voici ce que j’ai (j’ai remplacé les IP pour ne pas les afficher)

    Nov 13 13:00:20 XXX.XXX.XXX.XXX (pid 9119) Indexation de gif/mini.gif
    Nov 13 13:00:20 XXX.XXX.XXX.XXX (pid 9119) Indexation de jpg/01-cant.jpg
    Nov 13 13:00:20 XXX.XXX.XXX.XXX (pid 9119) Indexation de jpg/01-foot.jpg
    Nov 13 13:00:20 XXX.XXX.XXX.XXX (pid 9119) Indexation de jpg/arton53.jpg
    Nov 13 13:00:20 XXX.XXX.XXX.XXX (pid 9119) Indexation de jpg/photo02.jpg
    Nov 13 13:24:01 XXX.XXX.XXX.XXX (pid 9201) Indexation de gif/mini.gif
    Nov 13 13:24:01 XXX.XXX.XXX.XXX (pid 9201) Indexation de jpg/01-cant.jpg
    Nov 13 13:24:01 XXX.XXX.XXX.XXX (pid 9201) Indexation de jpg/01-foot.jpg
    Nov 13 13:24:01 XXX.XXX.XXX.XXX (pid 9201) Indexation de jpg/arton53.jpg
    Nov 13 13:24:01 XXX.XXX.XXX.XXX (pid 9201) Indexation de jpg/photo02.jpg
    Nov 13 13:43:36 XXX.XXX.XXX.XXX (pid 9320) Indexation de gif/mini.gif
    Nov 13 13:43:36 XXX.XXX.XXX.XXX (pid 9320) Indexation de jpg/01-cant.jpg
    Nov 13 13:43:36 XXX.XXX.XXX.XXX (pid 9320) Indexation de jpg/01-foot.jpg
    Nov 13 13:43:36 XXX.XXX.XXX.XXX (pid 9320) Indexation de jpg/arton53.jpg
    Nov 13 13:43:36 XXX.XXX.XXX.XXX (pid 9320) Indexation de jpg/photo02.jpg

    Qu’est-ce qui pourrait empêcher l’indexation des documents, puisqu’il à l’air de tourner en boucle ?

    Encore merci.

    Répondre à ce message

  • 6

    Bonjour

    Est-ce que Spip 2 cherche sur le contenu des documents PDF et DOC comme il le faisait dans les versions précédentes ?

    Est-ce que ce plugin modifie ce comportement ?

    • Bonjour,

      Je recherche aussi une solution.
      je suis en 2.0.9, et au niveau des résultats de recherche j’obtiens des documents qui ont le mot recherché dans le titre ou le descriptif mais pas dans le contenu des PDF.

      Une idée ?

    • Nicolas Hoizey

      L’indexation du contenu des pièces jointes arrive dans quelques heures dans ce plugin, en commençant justement par les PDF !

    • Excellent !

      Merci beaucoup !!!
      Cela confirme donc le fait que Spip n’indexe plus les contenus de certaines pièces jointes ou pas ?

      Quoi qu’il en soit merci de la contrib !

    • SPIP seul n’a jamais indexé la moindre pièce jointe. Avant, il fallait utiliser le plugin Indexation, maintenant Fulltext hérite de cette fonctionnalité.

    • Bravo pour ce plugin et vivement la suit, genre une balise #extrait(extrait du texte ou la recherche a trouvé la recherche :)), si je me sors assez vite d’autre soucis de webmaster je me lance pour voir comment fiare une telle balise.
      En attendant, dès que j’active le plugin je ne peux plus rechercher dans les brèves... J’efface les index fulltext, je les recrés... toujours rien. Le problème disparait quand je déactive le plugin... Le fichier rechercher.php et a priori correcte. Je recherche également dans les évenements et la pas de soucis... Je suis sur spip 2.09.
      Une suggération ?

    • Vraiment aucune idée sur le fait que la recherche sur les brèves ne fonctionne pas ?

    Répondre à ce message

  • 1
    dinomaster

    Comment faire pour inclure dans la recherche des tables supplémentaires qui ne sont pas gérées par spip ?

    • Je crois qu’il va falloir que tu regardes un peu le code en détails, car à priori ce n’est pas prévu en standard. Bon courage et n’hésite pas à partager tes solutions

    Répondre à ce message

  • Vincent Ramos

    Juste un mot : « Bravo ! » Et même un autre : « Merci ».

    Répondre à ce message

  • sugardaddy

    Bonjour,
    Voilà une bonne semaine que je cherche une solution à mon problème de résultats de recherche... cf ma dernière tentative sur les forums de spip : http://forum.spip.org/fr_215799.html#forum215878 (je vous laisse visiter, je ne vais pas me répéter ici)

    Et puis je déniche, je ne sais pas comment, ce plugin. Je me dis chouette ! Je vais régler mon problème.
    Et bien c’est pire !! Et ce plugin ne semble pas fonctionner pour moi.

    Je ne sais pas par où commencer pour régler ce souci... si quelqu’un avait une idée, cela m’aiderait grandement.

    Répondre à ce message

  • Pierrick

    Bonjour,

    J’utilise Fulltext sur plusieurs sites spip et tout marche parfaitement sur chacun d’eux. J’ai interconnecté ces sites entre eux en créant des fichiers Connect pour chacun d’eux et les sites communiquent bien entre eux. Par contre, en utilisant Ajax, je voudrai passer une requete de recherche fulltext d’un site à l’autre... et je n’y arrive pas.

    Par exemple, comment, depuis un site A, transmettre une recherche sur le site B avec « enfant étranger » ?

    J’obtiens des résultats avec « enfant » et avec « étranger » comme si fulltext n’existait pas. Par contre, la même requête faite directement sur le site B renvoie des résultats corrects !

    Ma requete ajax sur le site A :

    $.ajax(

    type : « POST »,

    url : http://monsiteA/?page=recherche,

    data : ’recherche=« enfant etranger »&connect=siteB’,

    success : function(bloc)//integration dans la maquette

    $(« #cont_recherche-B »).append(bloc) ;

    ) ;

    Comment faire pour que la chaîne « enfant étranger » soir bien prise en compte et non chaque mot ?

    Amicalement,

    Pierrick

    Répondre à ce message

  • 1

    Bonjour,

    sur ce site j’ai essayé la recherche :

    +afficher +sql (ça remonte beaucoup de lignes ; mais toutes ne contiennent pas les 2 mots !)

    sql (ne remonte aucune ligne)

    donc à quoi sert de spécifier le + comme mis dans la doc de ce plugin :

    +enfant +étranger -> Retourne les textes qui contiennent « enfant » ET « étranger ».

    qqun peut il m’expliquer pourquoi

    merci

    • voir un peu plus haut dans cet article :


      « Par défaut MySQL FULLTEXT indexe les mots de quatre lettres ou plus. »


      ce qui, donc, par défaut ne permet pas de rechercher sur « sql », « cvt », « onu », « ena »...

    Répondre à ce message

  • 10

    Bonjour,
    Suis-je le seul à avoir une « énorme » erreur sql à l’activation du plug-in, lors d’une recherche ?

    voici le message :
    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 ’LEFT JOIN archive.spip_auteurs_articles as lien1 ON lien1.id_article=t.id_arti’ at line 3

    je suis sous spip 2.0.5, sql 5.1.30...

    J’ai désactivé tous les autres plugins, et bien transformé les champs de ma base (avec exec=fulltexte

    • Non tu n’es pas le seul. Nous sommes au moins 2 !

      J’ai essayé ce plugin en local, suivi la procédure sans souci.

      Puis essayé et j’ai eu ce même message d’erreur.

    • @Sam et @tof : pouvez-vous regarder dans tmp/mysql.log le messag d’erreur complet ? Merci

    • ça te suffit ça ?

      Mar 20 09:22:58 127.0.0.1 (pid 524) 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 ’LEFT JOIN escal_V2.spip_auteurs_articles as lien1 ON lien1.id_article=t.id_art’ at line 3 -

      SELECT t.id_article, (MATCH(t.titre) AGAINST (’firefox’)) * 8 + (MATCH(t.surtitre,t.titre,t.soustitre,t.texte,t.nom_site,t.descriptif) AGAINST (’firefox’)) * 1.2 + SUM(MATCH(obj1.nom) AGAINST (’firefox’)) + SUM(MATCH(obj2.titre) AGAINST (’firefox’)) + SUM(MATCH(obj3.titre) AGAINST (’firefox’)) AS score, t.popularite

      FROM spip_articles AS t,

      LEFT JOIN spip_auteurs_articles as lien1 ON lien1.id_article=t.id_article

      LEFT JOIN spip_auteurs AS obj1 ON lien1.id_auteur=obj1.id_auteur

      ,
      LEFT JOIN spip_mots_articles as lien2 ON lien2.id_article=t.id_article

      LEFT JOIN spip_mots AS obj2 ON lien2.id_mot=obj2.id_mot

      ,
      LEFT JOIN spip_documents_liens AS lien3 ON (lien3.id_objet=t.id_article AND lien3.objet=’article’)

      LEFT JOIN spip_documents AS obj3 ON lien3.id_document=obj3.id_document

      WHERE t.statut=’publie’

      GROUP BY t.id_article

      ORDER BY score DESC

      LIMIT 0,500

    • Merci, c’est corrigé.

    • Je viens de
      -  télécharger le zip
      -  décompresser et mis le dossier fulltext à la place de l’ancien
      -  réactiver le plugin
      -  régénérer les index
      -  vider les caches
      et le problème persiste

      C’est bien la version corrigée qui est dispo ici ?

    • Non, car le zip n’est mis à jour qu’une fois par jour. Il faut que tu récupères le fichier par svn (ou que tu attendes le zip)

    • Ok merci, j’attendrais demain.

    • Ah voui ça marche mieux ainsi !

      Merci beaucoup pour ce plugin qui nous donne enfin une solution simple à mettre en œuvre pour permettre une recherche sur plusieurs mots, ce qui manquait à notre petit écureuil préféré.

    • Bonjour,
      y a-t-il une raison logique pour que la première recherche de n’importe quel terme (mot unique, deux mots, ...) mette toujours exactement 60 secondes avant de délivrer le résultat, et que, par la suite (même après une demi heure), la même recherche s’exécute immediatement.

      J’ai lancé plus d’une vingtaines de recherches et j’ai bouclé sur un SHOW PROCESSLIST : le process de requête SELECT T.id_article, MATCH... existe pendant strictement 60 secondes (avec le libellé : Copying to tmp table)

    • Oui c’est logique : la recherche est mise en cache à deux niveaux :
      -  par MySQL, qui cache sa requête et la restitue instantanément si elle est refaite exactement pareil
      -  par SPIP qui la stocke temporairement dans la table spip_resultats, pour pouvoir faire de la pagination et des boucles en tous sens sans relancer à chaque fois la même recherche

      Ensuite, 60 s c’est un peu long : mais là ça dépend surtout de la taille de ta base et de la capacité et configuration de ton serveur.

    Répondre à ce message

  • 4
    Mathieu

    Il serait intéressant de fusionner avec le plugin Indexation qui permet en outre d’indexer les documents joints.

    Plus tot ce sera fait mieux ça sera.

    Ce qu’il manque dans ces 2 plugins à mon avis c’est une proposition de formulaire de recherche avancée.

    • Il y a certes des choses à reprendre dans le plugin « Indexation » (notamment les extracteurs, pour remplir un champ spip_documents.texte avec le contenu des PDF etc) ; mais certainement pas tout, et pas en vrac.

      N’hésite pas à contribuer !

    • Mathieu

      Par curiosité, Fil, j’aimerais savoir lequel sera soutenu par la communauté ?

      Je suis également de ceux qui pensent que cela devrait être natif dans SPIP.

      Quant à contribuer, ce n’est l’envie mais le manque de temps qui m’en empêche.

      Quoiqu’il en soit, avec le plugin Fulltext, ça serait bien quand même un formulaire de recherche avancée avec :
      -  termes recherchés
      -  liste des rubriques
      -  date début et date de fin

    • Ca fait 2 post que tu fais pour donner des listes de choses à faire pour améliorer ce plugin, tu ferais mieux de passer ce temps à coder ! (comment peux tu avoir imaginé un seul instant qu’on est pas déja plein à avoir pensé aux choses que tu suggère ???)

    • Mathieu

      Désolé d’avoir froissé certains.

      Vu la tournure, je pense que je vais m’arrêter là.

      En tout cas, bon courage et bravo pour le travail accompli.

    Répondre à ce message

  • 2

    Puisque (je suppose ?) MySQL met des mots courts aussi dans l’index, est-ce qu’on pourrait réussir à chercher/trouver des mots comme « Jan », « Ewa », etc. maintenant ?

    Il me semble que la limite qui demande >3 caractères pour une recherche est toujours en place. Est-ce qu’elle est nécessaire ?

    • @Paolo : je viens d’ajouter un paragraphe expliquant comment étendre la recherche aux mots de 3 lettres.

    • Fil écrit :

      je viens d’ajouter un paragraphe expliquant comment étendre la recherche aux mots de 3 lettres.

      Impeccable ! Cela marche. Merci.

    Répondre à ce message

  • Bonjour,

    On pourrait pas prévoir une intégration pure et simple dans Spip en lieu et place de la recherche actuelle ?

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom