Recherche d'expression [RESOLU]

cancel
Showing results for 
Search instead for 
Did you mean: 
kim_9547
Member II

Recherche d'expression [RESOLU]

Bonjour,
j'ai souhaité avoir une recherche par défaut qui s'opère avec des "ET" entre les termes d'une requête.
J'ai donc remplacer false par true dans <search-and-terms>false</search-and-terms> du fichier de configuration Web-Client-Config.xml.
je m'attendais à ce qu'une recherche sur école nationale d'administration renvoie le même nombre de résultats que "école nationale d'administration", c'est à dire en mettant l'expression recherchée entre " ".
Cela n'est pas le cas, j'ai plus de réponses quand je n'utilise pas les "".

Est-ce normal ? Est-il possible de faire une recherche sur une expression exacte sans utiliser de "".

Autre question, peut-on demander à Lucene d'indexer et de reconnaître des expressions complètes comme agence nationale pour l'emploi ou prise illégale d'intérêt ou de gérer des synonymes en utilisant des dictionnaires particuliers comme cela existe sur certains moteurs ?

Merci,

Kim.
6 Replies
rguinot
Customer

Re: Recherche d'expression [RESOLU]

Je ne connais pas parfaitement la requête Lucene qui est construite à partir de l'interface standard, mais ces informatinons peuvent vous éclairer.

Je vous suggère la lecture de cette page : http://wiki.alfresco.com/wiki/Search pour mieux comprendre comment se passe l'indexation et la tokenisation Lucene.
Vous pouvez décider qu'une métadonnée devra être indexée "telle quelle", c'est à dire "tout ou rien", via la configuration suivante :

<property ….>           
<index enabled="true">
                  <atomic>true</atomic>
                  <stored>true</stored>
                  <tokenised>false/tokenised>
</index>
</property>

Les résultats dépendent également de la locale de l'utilisateur, et de la manière dont lucene a été configuré dans Alfresco.
Il faut également savoir qu'en fonction de la locale dépendent des "stopwords", c'est à dire des mots non indexés n'ayant pas d'intérêt pour la recherche (ex: le, la ,les , a, d' …) . C'est à dire qu'une recherche sur "a pour but d'offrir" retournera les mêmes résultats que "pour but offrir" étant donné que "a" et "d'" ne sont pas indexés.

Edit :

J'ai oublié de parler du thesaurus, ce n'est pas possible par défaut mais je crois me souvenir qu'il y a un exemple dans le bouquin "Lucene in Action" que j'ai déjà mentionné qq fois sur ce forum…Il y aurait un peu de développement Java effectivement.
rivarola
Active Member

Re: Recherche d'expression [RESOLU]

J'ai fait un cross post avec rguinot, mais je laisse ma réponse initiale qui complète la sienne sur certains points

Quelques éléments de réponse :
- la plupart des propriétés texte d'Alfresco sont indexées de manière tokenizée, c'est à dire comme une suite de mots, et pas comme une expression complète. On peut jouer sur ce jeu de propriétés du métamodèle (voir http://wiki.alfresco.com/wiki/Full-Text_Search_Configuration#Data_dictionary_options) pour indexer les chaînes de manière complète et du coup la recherche se fera sur l'expression exacte
- pour la gestion des synonymes ce n'est pas possible actuellement dans Alfresco mais tu peux jouer au niveau de l'Analyzer utilisé par Lucene pour faire une extension de recherche (c'est du dev Java, mais pas trop méchant, et ça se trouve peut-êter sur le Net)
- il reste des fonctionnements obscurs (pour ne pas dire bugs) sur la manière dont sont gérés les *, les " et les racines de mots. On est en train de qualifier quelques anomalies à ce sujet.
kim_9547
Member II

Re: Recherche d'expression [RESOLU]

Bonsoir,

merci pour toutes ces informations. J'ai essayé de trouver quelque chose sur Lucene et la  mise en oeuvre d'un thésaurus et je suis tombé sur Luke (http://www.getopt.org/luke/).

A votre avis est-ce qu'un tel outil peut être utilisé pour comprendre Lucene dans le contexte Alfresco ?


Kim.
rivarola
Active Member

Re: Recherche d'expression [RESOLU]

Luke peut t'être utile, mais il faudra aussi se plonger dans des classes comme ADMLuceneIndexerImpl (indexation des documents par Alfresco) ou LuceQueryParser (traitement de la requête texte pour l'exprimer en tant que Field Lucene).
Pour ce qui est spécifiquement l'injection des synonymes le sujet est (brièvement) traité dans le livre "Lucene in Action", avec leur exemple SynonymAnalyzer.
kim_9547
Member II

Re: Recherche d'expression [RESOLU]

Bonsoir,

encore merci pour toutes ces informations.


Kim.
imi
Member II

Re: Recherche d'expression [RESOLU]

Bonjour,

Je me suis laissé dire qu'à l'heure actuelle, la seule recherche documentaire sur les termes permise par Alfresco est la recherche en full text, via Lucene. Il n'existe pas de classification par défaut, et il ne serait pas possible non plus d'importer une classification, basée sur un thesaurus "métier" (construction d'une classification des termes en fonction du contexte "métier" - propre à un organisme ou à une entreprise ou à un domaine d'activités - dans lequel ils sont utilisés), et de permettre l'indexation automatique des documents ajoutés dans la classification.

Quelqu'un peut-il démentir cette information ? Avez-vous connaissance d'expériences qui auraient été tentées ?

J'ai pu découvrir que via la solution Share, il était possible d'apposer des "tags" sur les informations d'un site collaboratif; cela me semble intéressant, mais
- les "tags" sont liés au seul espace collaboratif dans lequel ils ont été déposés
- chaque utilisateur est libre d'ajouter des termes sans contrôle, ce qui ne permet pas de garantir une forme de "cohérence" à la recherhe (une même réalité est perçue par différents utilisateurs au travers d'un vocabulaire différent !).

Je vous remercie pour les réflexions que vous partagerez avec moi à ce sujet.

Bonne journée,

IMI