sdx-users
[Top][All Lists]
Advanced

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

RE : [sdx-users] simpleQuery / complexQuery: performances?


From: Martin Sevigny
Subject: RE : [sdx-users] simpleQuery / complexQuery: performances?
Date: Tue, 18 Feb 2003 10:35:45 +0100

Bonjour,

> J'ai en fait du mal à comprendre le design de Lucene ou, 
> plutôt, j'ai du 
> mal à comprendre pourquoi il en resté à ce qui est pour moi 
> un défaut de 
> jeunesse : en gros, on détermine *un* analyseur (<sdx:fieldList 
> analyzerConf="xxx">) au niveau de l'IndexWriter 
> (http://jakarta.apache.org/lucene/docs/api/org/apache/lucene/i
> ndex/IndexWriter.html), 
> ce qui revient à dire au niveau du *document* d'indexation.

A moitié. Lucene 1.2 a apporté une toute petite nouveauté dans l'API qui
a un impact énorme en SDX 2 vs 1. Lorsqu'il analyse (indexation ou
requête), on a l'info sur le champ en cours. Par exemple, lorsque le
QueryParser de Lucene analyse la requête :

maison +titre:(habitation religieuse)

A un certain moment, on a l'opération parser la chaîne "habitation
religieuse" dans le contexte où c'est dans le champ "titre".

La limite de Lucene, elle est double :

- avant d'en arriver là, il y a un "préparsage" de la requête pour être
capable d'analyser "titre:", "(", ")", etc. bref la syntaxe de base,
mais je ne vois pas comment on peut y échapper
- on donne un seul analyseur au parseur de requête...

La deuxième limite est complètement contournée dans SDX. En effet,
l'analyseur de mots que SDX passe au parseur de requête est en fait un
"méta-analyseur" qui n'analyse rien, il fait juste repasser le texte
reçu à l'analyseur approprié pour le champ en question.

C'est pourquoi SDX est "multi-analyseur" à la fois pour l'indexation et
pour les requêtes (avec la première limite ci-dessus). Ce n'est pas si
mal.

> Le fait qu'on n'ait a priori *qu'un seul* analyseur est pour 
> moi un gros 
> frein au multilinguisme. En gros, il vaut mieux avoir un jeu 
> index (une 
> "base de documents" dans le monde SDX) par langue... ou, pour 
> être plus 
> rigoureux, un jeu d'index par *méthode d'analyse*. En effet, pour une 
> même langue, on pourrait très bien concevoir plusieurs méthodes 
> d'analyse et, dans ces conditions, je m'étonne donc que l'on 
> n'ait pas 
> la possibilité d'analyser au niveau du *champ*.

Notre méta-analyseur permet de contourner ce problème, mais ceci étant
dit, pour certaines applications ce n'est pas suffisant.

A bientôt,

Martin Sévigny





reply via email to

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