sdx-developers
[Top][All Lists]
Advanced

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

RE : RE : [sdx-developers] QueryParser : ...et toujours


From: Rasik Pandey
Subject: RE : RE : [sdx-developers] QueryParser : ...et toujours
Date: Mon, 29 Sep 2003 11:58:07 +0200

Salut,
 
 >Là où je tique plus, c'est que le QueryParser va chercher l'analyseur 
 >d'indexation du champ par défaut ou, au pire, l'analyseur d'indexation

 >de la liste de champs.

Eh...ce n'est pas au QueryParser de chercher les Analyzers, c'est du
code dans chaque requête. Normalement, il y a une méthode
(query.setUp()) pour chaque type de requête qui utilise le QueryParser.
À cette méthode, tu peux passer le nom du champ duquel on tire son
Analyzer.   

>... mais j'ai du mal à évaluer l'impact si on a plusieurs locations.

?
La requête crée en utilisant ton Analyzer sera la requête (la texte)
pour chaque location/base. 

 >En tout cas, avec la méthode setAnalyzer que j'ai ajoutée dans Field 
 >(sans en référer à l'AnalyzerManager), je peux changer l'Analyzer à 
 >l'exécution. Je le fait dans l'appli, mais c'est tricky (et il manque 
 >une clause finally).
 >
 
Pourquoi pas créer/configurer l'Analyzer et l'ajouter dans
l'AnalyzerManager au moment de l'exécution? Après il faut avoir
seulement une méthode comme:

Query.setUp(SearchLocations sLocs, <<String analyzerId>>,  String
defaultField, String q, int operator);
Avec qqch comme:
componentManger.lookup(Framework).getAnalyzerManager().getAnalyzer(analy
zerId);

Soit: 

Query.setUp(SearchLocations sLocs, <<Analyzer analyzer>>, String
defaultField, String q, int operator);

Soit:

Query.setAnalyzer(Analyzer a OU String analyzerId);//le defaut sera
celle du champ 
Avec qqch comme:
componentManger.lookup(Framework).getAnalyzerManager().getAnalyzer(analy
zerId);


Ca me semble beaucoup plus facile à gérer que changer l'Analyzer du
champ à chaque requête envoyée?

Qu'en penses-tu?

Rasik

 





reply via email to

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