2009-05-08 3 views
3

Der StandardAnalyzer von Lucene entfernt bei der Indexierung Punkte aus Strings/Akronymen. Ich möchte, dass Lucene Punkte speichert und daher verwende ich die WhitespaceAnalyzer-Klasse.Verwenden von Stoppwörtern mit WhitespaceAnalyzer

Ich kann StandardAnalyzer meine Liste der Stoppwörter geben ... aber wie gebe ich WhitespaceAnalyzer?

Danke fürs Lesen.

Antwort

6

Erstellen Sie Ihren eigenen Analysator, indem Sie WhiteSpaceAnalyzer erweitern und die Methode tokenStream wie folgt überschreiben.

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

Hier die Stopset ist der Satz von Stoppwörtern, die Sie durch das Hinzufügen eines Konstruktor zu Ihrem Analysator erhalten könnten, das eine Liste von Stoppwörtern akzeptiert.

Sie können die reusableTokenStream() - Methode auch auf ähnliche Weise überschreiben, wenn Sie den TokenStream wiederverwenden möchten.

+0

könnten Sie bitte eine Beute auf meine Antwort haben und kommentieren: http://stackoverflow.com/questions/899542/problem-using-same-instance-of-indexsearcher-for-multiple-requests/1014501#1014501 –

+0

@ Shashikant Kore - Alle Eingaben für die Frage - http://stackoverflow.com/questions/14554850/solrj-query-get-the-most-relevant-record-first – JHS