2009-09-30 3 views
2

J'ai le code suivant et j'apprécierais vos conseils.Lucene (Java) - Comment spécifier le champ de recherche par défaut par programme?

QueryParser queryParser = new QueryParser(searchTerm, analyzer); 
    Query query = queryParser.parse(searchTerm); 

Ma première question est, ce "doublé"? Comme j'ai le "Chaîne à rechercher (= searchTerm)" dans le constructeur aussi bien que dans la méthode parse(). Est-ce vraiment nécessaire? (Pour un usage ultérieur j'ai besoin d'un objet de requête). Si je le fais de cette façon, cela peut-il même introduire des effets secondaires négatifs?

Et je ne suis pas en mesure de préciser le programme « champ par défaut » pour rechercher. Dans mes requêtes j'écris "content: House" et il recherche dans le champ "content". Mais comment puis-je spécifier par programme que "content:" est mon champ par défaut et qu'un utilisateur doit seulement entrer "House" (et lucene recherche automatiquement dans le champ "content").

Merci beaucoup

janvier

+0

aussi longtemps que je sache il n'y a pas cette option –

Répondre

5

Le premier argument au constructeur QueryParserest le champ de recherche par défaut, même si le javadoc ne fait pas évident.

Vous voulez ceci:

QueryParser queryParser = new QueryParser("content", analyzer); 
Query query = queryParser.parse(searchTerm); 
+0

Bonjour skaffman. Merci beaucoup pour votre aide!!! jens –

Questions connexes