sdx-users
[Top][All Lists]
Advanced

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

Re: [sdx-users] affichage alphabétique d'un e liste de terme sur un cham


From: Frédéric Glorieux
Subject: Re: [sdx-users] affichage alphabétique d'un e liste de terme sur un champ
Date: Wed, 22 Jun 2005 23:00:06 +0200
User-agent: Mozilla Thunderbird 1.0 (Windows/20041206)


Je ne sais pas si je suis avec ou contre toi,
T'as pas intérêt ;-))))

Je suis prêt à mourir pour certaines idées, mais peut-être pas celles là.

pour moi, un index doit contenir "Architecture -- Bâtiment cultuel -- Église", c'est au code à rendre (ou ne pas rendre) le terme à ceux qui cherchent "église".


Je ne suis pas d'accord : on parle de l'index, la chose qui apporte de la performance *en dernier ressort* : si on négocie, on la perd ipso facto.

Autant je suis d'accord avec toi sur ce type d'analyse lors d'une expansion de requête, autant je pense que si l'on cherche à récolter ce qu'il y a dans l'index, on doit aller vite.

Pour moi, un index Lucene est une source de données, au même titre qu'une base SQL. On n'y met pas n'importe quoi, il est potentiellement lisible par d'autres applis. Que Lucene s'arrange pour s'optimiser, ce n'est pas mon problème (enfin tant que ça marche).


Cela signifie aussi que "architecture -- bâtiment cultuel -- église" (sans majuscules) constitue un autre terme (qui en l'occurence pourrait faire doublon).


Ceci peut être (plus ou moins facilement) résolu dans le cadre d'une expansion de requête... on gère les quelques termes de la requête avant d'attaquer les nombreux termes de l'index.

mmmh, l'expansion de requête aura bien du mal à inférer toutes les combinaisons possibles de capitalisation, alors qu'il est si simple de la faire ici

terme cherché > analyseur > match ! < analyseur < terme lu

On pourrait penser à ceci

               document > analyseur > terme écrit
terme cherché > analyseur > match ! < terme lu

Mais en l'occurence, ce n'est pas le propos, car les termes sont comme ils sont, après analyse pour la base de documents, ou alors on monte une appli "liste de termes" (genre Rameau et ses notices)



Merci JAVA
Ou, plutôt, Unicode.

Alors merci, merci.

Il faudrait alors ajouter des guillemets quand il y a des espaces


Plus compliqué encore dans le cadre d'analyseurs renvoyant plusieurs tokens sur la même position. Voir :

http://www.nongnu.org/aramorph/french/lucene.html ;-)
http://svn.apache.org/viewcvs.cgi/lucene/java/trunk/src/test/org/apache/lucene/search/TestPositionIncrement.java?rev=150585&view=markup

Les espaces dont je parle ne concerne que les champs non tokenisés, les champ de type="field" ?

+Architecture* -"*bâtiment cultuel*" +*roman*


Mmmmh... <sdx:term> va carrément dans l'IndexReader et, de là, il peut renvoyer une TermDocs. A partir de là, on peut combiner (plus facile à écrire qu'à coder, je sais :-)

J'ai l'impression que c'est ce que fait fr.gouv.culture.sdx.search.lucene.query.Terms ? En tous cas les interventions citées plus haut consistent à filtrer la liste alphabétique de tous les termes d'un champ donné par l'index lucene (avec l'abstraction particulière à SDX de combiner plusieurs index)



--
Frédéric Glorieux ("AJLSM", <http://ajlsm.com>)





reply via email to

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