package com.manning.hsia.dvdstore;
import org.apache.lucene.analysis.StopAnalyzer;
import org.apache.lucene.analysis.Token;
import org.apache.lucene.analysis.TokenStream;
import org.testng.annotations.Test;
import java.io.StringReader;
import java.util.ArrayList;
public class TestStopAnalyzer {
@Test(groups="ch07")
public void testStopAnalyzer() throws Exception {
String phrase = "The Britannic, Olympic and Titanic were the White Star liners.";
StringReader reader = new StringReader( phrase );
StopAnalyzer analyzer = new StopAnalyzer();
TokenStream stream = null;
try {
stream = analyzer.tokenStream( phrase, reader );
ArrayList<String> terms = new ArrayList<String>();
Token token = new Token( );
while (true) {
token = stream.next( token );
if ( token == null ) {
break;
}
String term = extractToken( token );
terms.add( term );
}
assert terms.size() == 7 : "incorrect term count";
assert terms.get( 0 ).equals( "britannic" );
assert terms.get( 6 ).equals( "liners" );
for (String term : terms) {
System.out.println( term );
}
}
finally {
if ( stream != null ) {
stream.close();
}
}
}
private String extractToken( Token token ) {
char[] chars = token.termBuffer();
return new String( chars, 0, token.termLength() );
}
}