sdx-developers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [sdx-developers] Commits du jour


From: Pierrick Brihaye
Subject: Re: [sdx-developers] Commits du jour
Date: Mon, 23 Aug 2004 14:11:11 +0200
User-agent: Mozilla/5.0 (Windows; U; Win98; fr-FR; rv:1.6) Gecko/20040113

Salut,

Joran Le Cren a écrit :

Je vais détailler un peu le problème.

Avant mon dernier commit, le token WILDTERM était ainsi :
 | <WILDTERM:  (<_TERM_CHAR> | ( [ "*", "?" ] ))* >
Le problème avec cette regexp est qu'elle accepte les chaines du style : /+eglise/, or ceci n'est pas un wildterm (d'ailleurs Lucene n'aime pas du tout --> NPE). Cette chaine devrait provoquer un évènement PLUS puis un TERM.

Nous sommes d'accord.

La regexp suivante règle le problème :
| <WILDTERM:  <_TERM_START_CHAR>
                           (<_TERM_CHAR> | ( [ "*", "?" ] ))* >
Cependant, cette regexp pose un nouveau problème. Les chaines commençant par * ou par ? ne sont plus reconnues en tant que wildterm (à cause de l'exclusion par _TERM_START_CHAR ).

Ici aussi.

D'où l'ajout :
| <WILDTERM:  (<_TERM_START_CHAR> | ( [ "*", "?" ] ))
                            (<_TERM_CHAR> | ( [ "*", "?" ] ))* >
qui résoud les deux problèmes précédents.

Soit.

Non seulement xa*?b*?c*? est acceptée par les ' 3 ' regexp mais aussi xa**?****dfdf**?**?**dqsd*??? ;o). C'est à Lucene de gérer ce cas de figure (à tester quand même ;-)).

C'était le sens de ma question. un ("*")* ne peut que poser ce genre de problème. Mais bon, ça doit pouvoir ce résoudre en sortant une belle exception... ou en dissociant le modèle de contenu pour "?" (troncature répétable) et "*" (troncature non-répétable).

Quant à *abc, elle est acceptée par la première et dernière regexp et elle fonctionne. Le test a été fait sur sdxtest avec une requête du type: *nuaire qui renvoie "Annuaire".

Euh... par quel prodige ? Je croyais que les troncatures initiales n'étaient pas gérées par Lucene. Ai-je loupé un épisode ?

NB: J'ai bien noter les modifications à faire ZeroPositionIncrementTokenQueryParser.jj (QueSaQuo???)

Le même queryparser mais... à même de gérer des tokens dont le positionIncrement est égal à 0 :-)

Voir :

http://issues.apache.org/bugzilla/show_bug.cgi?id=23307
ou les utilitaires de http://www.nongnu.org/aramorph/french/index.html

A+

--
Pierrick Brihaye, informaticien
Service régional de l'Inventaire
DRAC Bretagne
mailto:address@hidden
+33 (0)2 99 29 67 78




reply via email to

[Prev in Thread] Current Thread [Next in Thread]