Caractères spéciaux Lucene dans un champs indéxé

  • user warning: Table './drupal_www_ori_oai_org/cache_filter' is marked as crashed and last (automatic?) repair failed query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '4:d19b9ea2b247f1879d4d49edf2620f81' in /home/ori-oai/drupal/drupal-6.34/includes/cache.inc on line 27.
  • user warning: Table './drupal_www_ori_oai_org/cache_filter' is marked as crashed and last (automatic?) repair failed query: UPDATE cache_filter SET data = '<div class=\"emailFilter\">Bonjour à tous,</p>\n<p>Nous harvestons et indexons des records OAI dont le <dc:subject> se trouve<br />\nêtre de la forme [A:B].</p>\n<p>Dans le cadre du module search, nous souhaitons pouvoir utiliser un vocabulaire<br />\npour classer nos records en fonction de la valeur du <dc:subject>. Les<br />\ncaractères [ ] : étant réservés dans le cadre des requêtes Lucene, nous<br />\nn\'arrivons malheureusement pas à nos fins. Nous avons essayés de les<br />\n\"escaper\" sans grand succès.</p>\n<p>Requête qui marche en utilisant Luke directement sur l\'index Lucene :<br />\n%2F%2Fdc%3Asubject:(\\[A\\:B\\]*)</p>\n<p>La même requête via la page<br />\n<a href=\"http://localhost:8182/ori-oai-indexing/search.html\" title=\"http://localhost:8182/ori-oai-indexing/search.html\">http://localhost:8182/ori-oai-indexing/search.html</a> ne renvoie aucun résultat.</p>\n<p>Example de terme du vocabulaire (qui ne marche pas donc) : </p>\n<p><vdex:term validIndex=\"true\"><br />\n <vdex:termIdentifier>A:B</vdex:termIdentifier><br />\n <vdex:caption><br />\n <vdex:langstring language=\"fr\">Foo</vdex:langstring><br />\n </vdex:caption><br />\n <vdex:metadata><br />\n <orioai:value>\\[A\\:B\\]*</orioai:value><br />\n </vdex:metadata><br />\n</vdex:term></p>\n<p>Nous aurions souhaité savoir comment formater nos vocabulaires pour contourner<br />\nce problème.</p>\n<p>En vous remerciant par avance, </p>\n<p>Romain\n</div>\n', created = 1507753886, expire = 1507840286, headers = '', serialized = 0 WHERE cid = '4:d19b9ea2b247f1879d4d49edf2620f81' in /home/ori-oai/drupal/drupal-6.34/includes/cache.inc on line 112.
  • user warning: Table './drupal_www_ori_oai_org/cache_filter' is marked as crashed and last (automatic?) repair failed query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '4:bbb777ddb9c743ab841b04150ee59963' in /home/ori-oai/drupal/drupal-6.34/includes/cache.inc on line 27.
  • user warning: Table './drupal_www_ori_oai_org/cache_filter' is marked as crashed and last (automatic?) repair failed query: UPDATE cache_filter SET data = '<div class=\"emailFilter\"><!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n<html>\n <head>\n <meta content=\"text/html; charset=UTF-8\" http-equiv=\"Content-Type\">\n </head>\n <body text=\"#000000\" bgcolor=\"#ffffff\">\n <font size=\"-1\"><font face=\"Verdana\">Bonjour,<br>\n <br>\n Je reviens sur cet échange.<br>\n Est-ce que ça fonctionne maintenant dans les recherches ?<br>\n <br>\n En revanche, j\'ai l\'impression que vous devez avoir des soucis\n avec cette config.<br>\n En effet, je crois que [ et ] ne doivent pas être remplacé par\n le même caractère pour que ça fonctionne.<br>\n Là vous remplacer [ et ] par _<br>\n <br>\n Noter qu\'un caractère type [ peut être remplacé par une string.<br>\n Donc par exemple :<br>\n - remplacer [ par op_<br>\n - : par @<br>\n - ] par _clos<br>\n <br>\n Est-ce que les remplacements fonctionnent bien ?<br>\n Est-ce que la recherche est OK ?<br>\n <br>\n Cdt,<br>\n </font></font>\n <div class=\"moz-signature\">\n <div class=\"moz-signature\">\n <font face=\"Verdana\"><small>\n Yohan COLMANT<br>\n Direction des Systèmes d\'Information<br>\n UVHC - Université de Valenciennes et du Hainaut Cambrésis<br>\n Coordinateur Technique du projet ORI-OAI\n </small>\n </font>\n </div>\n </div>\n <br>\n Le 21/06/2011 11:13, Romain Roure a écrit :\n <div class=\"emailFilter_Toggle\"><div class=\"emailFilter_Author_0\"><blockquote>Ok,\n j\'y suis!\n <br>\n <br>\n C\'est bien une regexp qui est utilisée (un String#replaceAll\n j\'imagine), du coup il faut escaper le crochet ouvrant. C\'est qui\n est plus surprenant, c\'est que l\'on ait pas besoin d\'escaper le\n crochet fermant!\n <br>\n <br>\n &lt;replacement stringToReplace=\"\\[\" stringReplacement=\"_\"&gt;\n <br>\n &lt;formatId&gt;dublin_core&lt;/formatId&gt;\n <br>\n &lt;xpath&gt;//dc:subject&lt;/xpath&gt;\n <br>\n &lt;/replacement&gt;\n <br>\n <br>\n Encore merci,\n <br>\n <br>\n Romain\n <br>\n <br>\n On 06/21/2011 11:05 AM, Romain Roure wrote:\n <br>\n <div class=\"emailFilter_Author_1\"><blockquote type=\"cite\">Tout d\'abord, merci pour tes réponses.\n <br>\n <br>\n La regexp ne donne rien, aucune substitution n\'est appliquée.\n <br>\n J\'ai vraiment l\'impression que c\'est le crochet ouvrant qui pose\n soucis. Si je définis 2 \"replacements\" sur \']\' et \':\' , ca\n marche. Par contre, un unique \"replacement\" sur \'[\' ne\n fonctionne pas.\n <br>\n <br>\n Une info importante (que j\'ai oubliée de mentionner!) : je\n tourne en 1.5.\n <br>\n <br>\n Romain\n <br>\n <br>\n <br>\n On 06/21/2011 10:14 AM, Francois Jannin wrote:\n <br>\n <div class=\"emailFilter_Author_2\"><blockquote type=\"cite\">Bonjour,\n <br>\n <br>\n Il se peut après examen du code, que le mécanisme ne prévoie\n qu\'une substitution par xpath.\n <br>\n Vous pouvez essayer en utilisant une seule substitution avec\n une expression régulière \"ou\"\n <br>\n <br>\n &lt;replacement stringToReplace=\"[|]\"\n stringReplacement=\"_\"&gt;\n <br>\n &lt;formatId&gt;dublin_core&lt;/formatId&gt;\n <br>\n &lt;xpath&gt;//dc:subject[0]&lt;/xpath&gt;\n <br>\n &lt;/replacement&gt;\n <br>\n Dites-moi si ça marche.\n <br>\n <br>\n François\n <br>\n <br>\n Le 20/06/2011 10:59, Romain Roure a écrit :\n <br>\n <div class=\"emailFilter_Author_3\"><blockquote type=\"cite\">Bonjour Francois,\n <br>\n <br>\n J\'ai bien rajouté des \"replacements\" pour les caractères\n réservés [ ] :\n <br>\n Après réindexation des fiches, l\'index m\'affiche des\n résultats de la forme [A_B_ ( à l\'origine [A:B] ). Il semble\n que la substitution du caractère [ ne soit pas prise en\n compte.\n <br>\n Le fichier configIndexing.xml ne contient aucun autre\n \"replacement\" sur le crochet ouvrant qui pourrait rentrer en\n conflit avec celui déclaré pour le dc:subject.\n <br>\n <br>\n Si vous avez une idée, je suis preneur.\n <br>\n <br>\n Merci encore,\n <br>\n <br>\n Romain\n <br>\n <br>\n On 06/15/2011 10:49 AM, Francois Jannin wrote:\n <br>\n <div class=\"emailFilter_Author_4\"><blockquote type=\"cite\">Bonjour,\n <br>\n <br>\n Vous pouvez tenter d\'utiliser la substitution de\n caractères, utilisée par ailleurs pour certains caractères\n reservés (dans le fichier configIndexing.xml) :\n <br>\n <br>\n &lt;replacement stringToReplace=\":\"\n stringReplacement=\"_\"&gt;\n <br>\n &lt;formatId&gt;pedagogique&lt;/formatId&gt;\n <br>\n&lt;xpath&gt;//lom:general/lom:identifier/lom:entry&lt;/xpath&gt;\n <br>\n &lt;/replacement&gt;\n <br>\n <br>\n avec par exemple (à tester/ajuster)\n <br>\n <br>\n &lt;replacement stringToReplace=\"[\"\n stringReplacement=\"_\"&gt;\n <br>\n &lt;formatId&gt;dublin_core&lt;/formatId&gt;\n <br>\n &lt;xpath&gt;//dc:subject&lt;/xpath&gt;\n <br>\n &lt;/replacement&gt;\n <br>\n <br>\n &lt;replacement stringToReplace=\"]\"\n stringReplacement=\"_\"&gt;\n <br>\n &lt;formatId&gt;dublin_core&lt;/formatId&gt;\n <br>\n &lt;xpath&gt;//dc:subject&lt;/xpath&gt;\n <br>\n &lt;/replacement&gt;\n <br>\n <br>\n Il faut, pour que le test soit probant, réindexer vos\n fiches par contre.\n <br>\n <br>\n François\n <br>\n <br>\n <br>\n Le 10/06/2011 11:16, <a class=\"moz-txt-link-abbreviated\" href=\"&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#114;&#111;&#109;&#97;&#105;&#110;&#46;&#114;&#111;&#117;&#114;&#101;&#64;&#117;&#110;&#105;&#118;&#45;&#116;&#111;&#117;&#108;&#111;&#117;&#115;&#101;&#46;&#102;&#114;\">&#114;&#111;&#109;&#97;&#105;&#110;&#46;&#114;&#111;&#117;&#114;&#101;&#64;&#117;&#110;&#105;&#118;&#45;&#116;&#111;&#117;&#108;&#111;&#117;&#115;&#101;&#46;&#102;&#114;</a> a écrit\n :\n <br>\n <div class=\"emailFilter_Author_5\"><blockquote type=\"cite\">Bonjour à tous,\n <br>\n <br>\n Nous harvestons et indexons des records OAI dont\n le&lt;dc:subject&gt;  se trouve\n <br>\n être de la forme [A:B].\n <br>\n <br>\n Dans le cadre du module search, nous souhaitons pouvoir\n utiliser un vocabulaire\n <br>\n pour classer nos records en fonction de la valeur\n du&lt;dc:subject&gt;. Les\n <br>\n caractères [ ] : étant réservés dans le cadre des\n requêtes Lucene, nous\n <br>\n n\'arrivons malheureusement pas à nos fins. Nous avons\n essayés de les\n <br>\n \"escaper\" sans grand succès.\n <br>\n <br>\n Requête qui marche en utilisant Luke directement sur\n l\'index Lucene :\n <br>\n %2F%2Fdc%3Asubject:(\\[A\\:B\\]*)\n <br>\n <br>\n La même requête via la page\n <br>\n <a class=\"moz-txt-link-freetext\" href=\"http://localhost:8182/ori-oai-indexing/search.html\">http://localhost:8182/ori-oai-indexing/search.html</a>  ne\n renvoie aucun résultat.\n <br>\n <br>\n Example de terme du vocabulaire (qui ne marche pas donc)\n :\n <br>\n <br>\n &lt;vdex:term validIndex=\"true\"&gt;\n <br>\n&lt;vdex:termIdentifier&gt;A:B&lt;/vdex:termIdentifier&gt;\n <br>\n &lt;vdex:caption&gt;\n <br>\n &lt;vdex:langstring\n language=\"fr\"&gt;Foo&lt;/vdex:langstring&gt;\n <br>\n &lt;/vdex:caption&gt;\n <br>\n &lt;vdex:metadata&gt;\n <br>\n &lt;orioai:value&gt;\\[A\\:B\\]*&lt;/orioai:value&gt;\n <br>\n &lt;/vdex:metadata&gt;\n <br>\n &lt;/vdex:term&gt;\n <br>\n <br>\n Nous aurions souhaité savoir comment formater nos\n vocabulaires pour contourner\n <br>\n ce problème.\n <br>\n <br>\n En vous remerciant par avance,\n <br>\n <br>\n Romain\n <br>\n </blockquote></div>\n <br>\n <br>\n -- <br>\n <br>\n <a class=\"moz-txt-link-rfc2396E\" href=\"http://www.inp-toulouse.fr\">&lt;http://www.inp-toulouse.fr&gt;</a>\n <br>\n *François Jannin*\n <br>\n DSI - Développement et déploiement d\'applications\n <br>\n Tél : +33 (0)5 34 32 30 51\n <br>\n <br>\n INP Toulouse\n <br>\n 6 allée Emile Monso - BP 34038\n <br>\n 31029 Toulouse cedex 4\n <br>\n <a class=\"moz-txt-link-freetext\" href=\"http://www.inp-toulouse.fr\">http://www.inp-toulouse.fr</a>\n <br>\n <br>\n  Avant d’imprimer ce courriel, demandez-vous si ceci est\n nécessaire.\n <br>\n <br>\n </blockquote></div>\n <br>\n </blockquote></div>\n <br>\n <br>\n -- <br>\n <br>\n <a class=\"moz-txt-link-rfc2396E\" href=\"http://www.inp-toulouse.fr\">&lt;http://www.inp-toulouse.fr&gt;</a>\n <br>\n *François Jannin*\n <br>\n DSI - Développement et déploiement d\'applications\n <br>\n Tél : +33 (0)5 34 32 30 51\n <br>\n <br>\n INP Toulouse\n <br>\n 6 allée Emile Monso - BP 34038\n <br>\n 31029 Toulouse cedex 4\n <br>\n <a class=\"moz-txt-link-freetext\" href=\"http://www.inp-toulouse.fr\">http://www.inp-toulouse.fr</a>\n <br>\n <br>\n  Avant d’imprimer ce courriel, demandez-vous si ceci est\n nécessaire.\n <br>\n <br>\n </blockquote></div>\n <br>\n </blockquote></div>\n <br>\n <br>\n </blockquote></div></div>\n </body>\n</html>\n</div>', created = 1507753888, expire = 1507840288, headers = '', serialized = 0 WHERE cid = '4:bbb777ddb9c743ab841b04150ee59963' in /home/ori-oai/drupal/drupal-6.34/includes/cache.inc on line 112.
2 messages / 0 nouveaux
Dernière contribution
romain.roure
Caractères spéciaux Lucene dans un champs indéxé
Bonjour à tous,

Nous harvestons et indexons des records OAI dont le se trouve
être de la forme [A:B].

Dans le cadre du module search, nous souhaitons pouvoir utiliser un vocabulaire
pour classer nos records en fonction de la valeur du . Les
caractères [ ] : étant réservés dans le cadre des requêtes Lucene, nous
n'arrivons malheureusement pas à nos fins. Nous avons essayés de les
"escaper" sans grand succès.

Requête qui marche en utilisant Luke directement sur l'index Lucene :
%2F%2Fdc%3Asubject:(\[A\:B\]*)

La même requête via la page
http://localhost:8182/ori-oai-indexing/search.html ne renvoie aucun résultat.

Example de terme du vocabulaire (qui ne marche pas donc) :


A:B

Foo


\[A\:B\]*

Nous aurions souhaité savoir comment formater nos vocabulaires pour contourner
ce problème.

En vous remerciant par avance,

Romain

Yohan Colmant
Bonjour,

Je reviens sur cet échange.
Est-ce que ça fonctionne maintenant dans les recherches ?

En revanche, j'ai l'impression que vous devez avoir des soucis avec cette config.
En effet, je crois que [ et ] ne doivent pas être remplacé par le même caractère pour que ça fonctionne.
Là vous remplacer [ et ] par _

Noter qu'un caractère type [ peut être remplacé par une string.
Donc par exemple :
- remplacer [ par op_
- : par @
- ] par _clos

Est-ce que les remplacements fonctionnent bien ?
Est-ce que la recherche est OK ?

Cdt,
Yohan COLMANT
Direction des Systèmes d'Information
UVHC - Université de Valenciennes et du Hainaut Cambrésis
Coordinateur Technique du projet ORI-OAI

Le 21/06/2011 11:13, Romain Roure a écrit :
Ok, j'y suis!

C'est bien une regexp qui est utilisée (un String#replaceAll j'imagine), du coup il faut escaper le crochet ouvrant. C'est qui est plus surprenant, c'est que l'on ait pas besoin d'escaper le crochet fermant!

<replacement stringToReplace="\[" stringReplacement="_">
<formatId>dublin_core</formatId>
<xpath>//dc:subject</xpath>
</replacement>

Encore merci,

Romain

On 06/21/2011 11:05 AM, Romain Roure wrote:
Tout d'abord, merci pour tes réponses.

La regexp ne donne rien, aucune substitution n'est appliquée.
J'ai vraiment l'impression que c'est le crochet ouvrant qui pose soucis. Si je définis 2 "replacements" sur ']' et ':' , ca marche. Par contre, un unique "replacement" sur '[' ne fonctionne pas.

Une info importante (que j'ai oubliée de mentionner!) : je tourne en 1.5.

Romain


On 06/21/2011 10:14 AM, Francois Jannin wrote:
Bonjour,

Il se peut après examen du code, que le mécanisme ne prévoie qu'une substitution par xpath.
Vous pouvez essayer en utilisant une seule substitution avec une expression régulière "ou"

<replacement stringToReplace="[|]" stringReplacement="_">
<formatId>dublin_core</formatId>
<xpath>//dc:subject[0]</xpath>
</replacement>
Dites-moi si ça marche.

François

Le 20/06/2011 10:59, Romain Roure a écrit :
Bonjour Francois,

J'ai bien rajouté des "replacements" pour les caractères réservés [ ] :
Après réindexation des fiches, l'index m'affiche des résultats de la forme [A_B_ ( à l'origine [A:B] ). Il semble que la substitution du caractère [ ne soit pas prise en compte.
Le fichier configIndexing.xml ne contient aucun autre "replacement" sur le crochet ouvrant qui pourrait rentrer en conflit avec celui déclaré pour le dc:subject.

Si vous avez une idée, je suis preneur.

Merci encore,

Romain

On 06/15/2011 10:49 AM, Francois Jannin wrote:
Bonjour,

Vous pouvez tenter d'utiliser la substitution de caractères, utilisée par ailleurs pour certains caractères reservés (dans le fichier configIndexing.xml) :

<replacement stringToReplace=":" stringReplacement="_">
<formatId>pedagogique</formatId>
<xpath>//lom:general/lom:identifier/lom:entry</xpath>
</replacement>

avec par exemple (à tester/ajuster)

<replacement stringToReplace="[" stringReplacement="_">
<formatId>dublin_core</formatId>
<xpath>//dc:subject</xpath>
</replacement>

<replacement stringToReplace="]" stringReplacement="_">
<formatId>dublin_core</formatId>
<xpath>//dc:subject</xpath>
</replacement>

Il faut, pour que le test soit probant, réindexer vos fiches par contre.

François


Le 10/06/2011 11:16, romain.roure@univ-toulouse.fr a écrit :
Bonjour à tous,

Nous harvestons et indexons des records OAI dont le<dc:subject>  se trouve
être de la forme [A:B].

Dans le cadre du module search, nous souhaitons pouvoir utiliser un vocabulaire
pour classer nos records en fonction de la valeur du<dc:subject>. Les
caractères [ ] : étant réservés dans le cadre des requêtes Lucene, nous
n'arrivons malheureusement pas à nos fins. Nous avons essayés de les
"escaper" sans grand succès.

Requête qui marche en utilisant Luke directement sur l'index Lucene :
%2F%2Fdc%3Asubject:(\[A\:B\]*)

La même requête via la page
http://localhost:8182/ori-oai-indexing/search.html  ne renvoie aucun résultat.

Example de terme du vocabulaire (qui ne marche pas donc) :

<vdex:term validIndex="true">
<vdex:termIdentifier>A:B</vdex:termIdentifier>
<vdex:caption>
<vdex:langstring language="fr">Foo</vdex:langstring>
</vdex:caption>
<vdex:metadata>
<orioai:value>\[A\:B\]*</orioai:value>
</vdex:metadata>
</vdex:term>

Nous aurions souhaité savoir comment formater nos vocabulaires pour contourner
ce problème.

En vous remerciant par avance,

Romain


-- 

<http://www.inp-toulouse.fr>
*François Jannin*
DSI - Développement et déploiement d'applications
Tél : +33 (0)5 34 32 30 51

INP Toulouse
6 allée Emile Monso - BP 34038
31029 Toulouse cedex 4
http://www.inp-toulouse.fr

 Avant d’imprimer ce courriel, demandez-vous si ceci est nécessaire.




-- 

<http://www.inp-toulouse.fr>
*François Jannin*
DSI - Développement et déploiement d'applications
Tél : +33 (0)5 34 32 30 51

INP Toulouse
6 allée Emile Monso - BP 34038
31029 Toulouse cedex 4
http://www.inp-toulouse.fr

 Avant d’imprimer ce courriel, demandez-vous si ceci est nécessaire.




Options d'affichage des commentaires

Sélectionnez la méthode d'affichage des commentaires que vous préférez, puis cliquez sur « Enregistrer les paramètres » pour activer vos changements.