[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: RE : [sdx-developers] Le highlighter de la mort
From: |
Pierrick Brihaye |
Subject: |
Re: RE : [sdx-developers] Le highlighter de la mort |
Date: |
Fri, 19 Sep 2003 14:42:28 +0200 |
User-agent: |
Mozilla/5.0 (Windows; U; Win98; fr-FR; rv:1.0.2) Gecko/20030208 Netscape/7.02 |
Re,
Rasik Pandey a écrit:
>else {
> char[] chars = tokenText.toCharArray();
> if (chars != null)
> this.xmlConsumer.characters(chars, 0, chars.length);
>}
>
>Va donc me renvoyer *chaque* token qui n'est pas dans la "liste de
>termes" : this.terms (qui pourrait être renommée
>this.wantedHighlights
>?).
Mais si tu le corrige du coté de la requête (QueryParser) toute tes
termes iraient apparaître dans cette liste.
Euh... je ne comprends pas bien la réponse.
Mon problème est là :
while ((token = stream.next()) != null)
Ce qui va me renvoyer des tokens dont certains sont à la *même*
position. Ce qui veut dire qu'à chaque iteration, là ou l'on a :
startOffset = token.startOffset();
endOffset = token.endOffset();
Ca veut dire en fait :
startOffset = the_same_startOffset_than_before;
endOffset = the_same_endOffset_than_before;
Si le token n'est *pas* dans la requête, je vais donc arriver dans le else :
else {
char[] chars = tokenText.toCharArray();
if (chars != null)
this.xmlConsumer.characters(chars, 0, chars.length);
}
Ainsi, on va envoyer *plusieurs* fois le même texte au consumer.
Bon, c'est vrai on va aussi envoyer plusieurs fois
highlightTerm(tokenText, termText), ce qui va nous créer des trucs comme
ça :
<sdx:highlight no="1" term="match1">original</sdx:hightlight>
<sdx:highlight no="2" term="match2">original</sdx:hightlight>
<sdx:highlight no="3" term="match3">original</sdx:hightlight>
2 problèmes :
1) l'augmentation du compteur (au fait, quel en sont les usages
potentiels ?)
2) la répétition inutile (et problématique) du text() original.
Ne peut-on concevoir :
<sdx:highlight no="1" terms="match1 match2 match3">
ou
<sdx:highlight no="1" term="match1">
<sdx:highlight no="2" term="match2">
<sdx:highlight no="3" term="match1">
original
</sdx:hightlight>
</sdx:hightlight>
</sdx:hightlight>
En ce qui concerne le parsage de la requête, j'en suis là :
Soit :
token1-1 (positionIncrement = 1)
token1-2 (positionIncrement = 0)
token1-3 (positionIncrement = 0)
token2-1 (positionIncrement = 1)
token2-2 (positionIncrement = 0)
La seule (?) façon d'interpréter correctement la Query, c'est de faire
la combinatoire, i.e. :
BooleanQuery
-- OR -- PhraseQuery "token1-1 token2-1"
-- OR -- PhraseQuery "token1-2 token2-1"
-- OR -- PhraseQuery "token1-3 token2-1"
-- OR -- PhraseQuery "token1-1 token2-2"
-- OR -- PhraseQuery "token1-2 token2-2"
-- OR -- PhraseQuery "token1-3 token2-2"
Ou, en jargon Lucene :
"token1-1 token2-1" "token1-2 token2-1" "token1-3 token2-1" "token1-1
token2-2" "token1-2 token2-2" "token1-3 token2-2"
Bref, je ne vois pas en quoi une modification du queryParser peut
garantir l'unicité du passage dans la boucle du highlighter. Mais
peut-être ai-je loupé quelque chose ?
>Je travaille sur un tokenizer qui, pour un token en entrée, peut en
renvoyer N en sortie. Evidemment, ces N tokens ont
>les mêmes offsets que le token d'entrée. La seule différence, c'est
que le premier a un positionIncrement de 1 (cas
>standard) et les autres un positionIncrement de 0.
Tu l'as vu? Ça ne t'aide pas?:
Euh... quoi ? La doc Lucene ? Bien sûr :-) La problème, c'est que les
implémentations travaillent toutes avec des getPositionIncrement de 1
(il y a néanmoins un excellent test dans
src/test/org/apache/lucene/search/ mais il n'implique pas le queryParser
:-() . On reparler de TermVectors, mais j'ai bien peur qu'il faille
attendre...
A+
--
Pierrick Brihaye, informaticien
Service régional de l'Inventaire
DRAC Bretagne
mailto:address@hidden
- [sdx-developers] Le highlighter de la mort, Pierrick Brihaye, 2003/09/19
- RE : [sdx-developers] Le highlighter de la mort, Rasik Pandey, 2003/09/19
- Re: RE : [sdx-developers] Le highlighter de la mort,
Pierrick Brihaye <=
- RE : RE : [sdx-developers] Le highlighter de la mort, Rasik Pandey, 2003/09/19
- Re: RE : RE : [sdx-developers] Le highlighter de la mort, Pierrick Brihaye, 2003/09/19
- RE : RE : RE : [sdx-developers] Le highlighter de la mort, Rasik Pandey, 2003/09/19
- Re: RE : RE : [sdx-developers] Le highlighter de la mort, Pierrick Brihaye, 2003/09/19
- RE : RE : RE : [sdx-developers] Le highlighter de la mort, Rasik Pandey, 2003/09/22
- Re: RE : RE : RE : [sdx-developers] Le highlighter de la mort, Pierrick Brihaye, 2003/09/22
- RE : RE : RE : RE : [sdx-developers] Le highlighter de la mort, Rasik Pandey, 2003/09/22
- Re: RE : RE : RE : RE : [sdx-developers] Le highlighter de la mort, Pierrick Brihaye, 2003/09/22
- RE : RE : [sdx-developers] Le highlighter de la mort, Rasik Pandey, 2003/09/19
- Re: RE : RE : [sdx-developers] Le highlighter de la mort, Pierrick Brihaye, 2003/09/19