[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[sdx-developers] Le highlighter de la mort
From: |
Pierrick Brihaye |
Subject: |
[sdx-developers] Le highlighter de la mort |
Date: |
Fri, 19 Sep 2003 09:44:45 +0200 |
User-agent: |
Mozilla/5.0 (Windows; U; Win98; fr-FR; rv:1.0.2) Gecko/20030208 Netscape/7.02 |
Salut,
Résultats des observations de la soirée : pas encore la tête trop claire
pour analyser...
Voici le code de highlighting ; j'ai ajouté un commentaire (/* */) car
je trouve que la terminologie choisie prête à confusion :
while ((token = stream.next()) != null) {
startOffset = token.startOffset();
endOffset = token.endOffset();
/* TODO : rename originalTextAtPosition ? */
tokenText = text.substring(startOffset, endOffset);
// append text between end of last token (or beginning of text) and
//start of current token
if (startOffset > lastEndOffset) {
char[] chars =
text.substring(lastEndOffset, startOffset).toCharArray();
if (chars != null)
this.xmlConsumer.characters(chars, 0, chars.length);
}
String termText = token.termText();
// does query contain current token?
if (Utilities.checkString(termText) && this.terms != null
&& this.terms.contains(termText))
highlightTerm(tokenText, termText);
else {
char[] chars = tokenText.toCharArray();
if (chars != null)
this.xmlConsumer.characters(chars, 0, chars.length);
}
lastEndOffset = endOffset;
}
Mon problème est là :
while ((token = stream.next()) != null) {
... va me renvoyer des tokens dont certains auront un un
getPositionIncrement() égal à 0.
Si mon analyse est bonne :
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
?). Je vous recommande le résultat de cette manipulation : très
impressionnant :-)
En fait, je pense qu'il faudrait avoir ça :
else {
//Check whether this text has already been emitted
if (token.getPositionIncrement() != 0) {
char[] chars = tokenText.toCharArray();
if (chars != null)
this.xmlConsumer.characters(chars, 0, chars.length);
}
}
Est-ce que vous confirmez l'analyse ?
Je dois avouer que je n'ai aucune idée de l'implication pour des tokens
dont le getPositionIncrement() serait > 1. J'ai bien peur que chez
Lucene, ça ne soit pas très clair non plus :-)
A+
--
Pierrick Brihaye, informaticien
Service régional de l'Inventaire
DRAC Bretagne
mailto:address@hidden
- [sdx-developers] Le highlighter de la mort,
Pierrick Brihaye <=
- RE : [sdx-developers] Le highlighter de la mort, Rasik Pandey, 2003/09/19
- Re: RE : [sdx-developers] Le highlighter de la mort, Pierrick Brihaye, 2003/09/19
- 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