2009-05-08 4 views
3

StandardAnalyzer de Lucene supprime les points de la chaîne/des acronymes lors de l'indexation. Je veux que Lucene conserve des points et donc j'utilise la classe WhitespaceAnalyzer.Utilisation de mots vides avec WhitespaceAnalyzer

Je peux donner ma liste de mots d'arrêt à StandardAnalyzer ... mais comment puis-je donner à WhitespaceAnalyzer?

Merci d'avoir lu.

Répondre

6

Créez votre propre analyseur en allongeant WhiteSpaceAnalyzer et substituez tokenStream méthode comme suit.

public TokenStream tokenStream(String fieldName, Reader reader) { 
    TokenStream result = super.tokenStream(fieldName, reader); 
    result = new StopFilter(result, stopSet); 
    return result; 
} 

Ici, le stopSet est l'ensemble des mots d'arrêt, que vous pourriez obtenir en ajoutant un constructeur à votre analyseur qui accepte une liste de mots d'arrêt.

Vous pouvez également remplacer la méthode reusableTokenStream() de la même façon si vous envisagez de réutiliser le TokenStream.

+0

pourrait vous s'il vous plaît avoir un butin à ma réponse et commenter: http://stackoverflow.com/questions/899542/problem-using-same-instance-of-indexsearcher-for-multiple-requests/1014501#1014501 –

+0

@Shashikant Kore - Toutes les entrées pour question - http://stackoverflow.com/questions/14554850/solrj-query-get-the-most-relevant-record-first – JHS