2011-05-04 2 views
0

J'utilise Lucene avec Java pour indexer certains documents texte. Maintenant, après avoir obtenu quelques documents pour une recherche par mot-clé, je veux affiner ma recherche et rechercher uniquement les documents les plus importants avec quelques mots-clés supplémentaires, donc chaque document une fois. Quelqu'un peut-il me dire comment je peux rechercher un document spécifique avec un mot-clé spécifique, pas tout l'index, mais disons juste 123.xml avec des mots-clés "bla bla".recherche lucene sur un document spécifique

Merci à l'avance

Répondre

0

Si vous souhaitez affiner votre recherche, vous devez utiliser des filtres (voir IndexSearcher

search(Query query, 
    Filter filter, 
    int n, 
    Sort sort) 

)! Les filtres seront exécutés sur le jeu de résultats et constituent le bon moyen d'implémenter des recherches affinées.

Jetez un oeil à cette page pour savoir comment utiliser les filtres: http://www.javaranch.com/journal/2009/02/filtering-a-lucene-search.html

Quoi qu'il en soit:

Si vous voulez rechercher dans un seul document que vous pouvez prendre le seul document, la stocker dans un RAMDirectory et recherchez dans le RAMDirectory comme vous le feriez dans votre index normal. Ou vous pouvez avoir un champ contenant des identifiants uniques pour chaque document et l'ajouter à votre requête, par exemple. "contant: (bla blah) et uniqe_doc_id: (doc1)"

+0

Je ne connais pas très bien la lucene, pourriez-vous donner un exemple sur la façon dont j'utiliserais le filtre? – Fuega

+0

@Fuega: J'ai édité la réponse;) – csupnig