LuceneAnalyzer.java
01 /*
02  *  LuceneAnalyzer.java
03  *
04  *  Niraj Aswani, 19/March/07
05  *
06  *  $Id: LuceneAnalyzer.html,v 1.0 2007/03/19 16:22:01 niraj Exp $
07  */
08 package gate.creole.annic.lucene;
09 
10 import gate.creole.annic.apache.lucene.analysis.*;
11 import gate.util.GateRuntimeException;
12 
13 import java.io.*;
14 
15 /**
16  * This class provides an implementation for Analyzer which is used
17  * internally by ANNIC resources.
18  
19  @author niraj
20  
21  */
22 public class LuceneAnalyzer extends Analyzer {
23 
24   /**
25    * Each analyzer is required to provide implementation of this method.
26    * Using the provided reader, which in this case must be an instance
27    * of LuceneReader, it obtains the tokenStream and wrap it in the
28    * instanceof LuceneTokenizer. It is this instance that is returned to
29    * the user.
30    */
31   @Override
32   public TokenStream tokenStream(String fieldName, Reader reader) {
33     try {
34       if(reader instanceof LuceneReader) {
35         if(fieldName.equals("contents")) {
36           LuceneReader gr = (LuceneReader)reader;
37           try {
38             TokenStream result = new LuceneTokenizer(gr.getTokenStream());
39             return result;
40           }
41           catch(Exception e) {
42             e.printStackTrace();
43           }
44 
45         }
46         else {
47           new gate.creole.annic.apache.lucene.analysis.standard.StandardTokenizer(
48                   reader);
49         }
50       }
51     }
52     catch(Exception e) {
53       throw new GateRuntimeException(e);
54     }
55     return null;
56   }
57 }