Package railo.runtime.search.lucene2

Source Code of railo.runtime.search.lucene2.SearchUtil

package railo.runtime.search.lucene2;

import java.util.Map;

import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.br.BrazilianAnalyzer;
import org.apache.lucene.analysis.cjk.CJKAnalyzer;
import org.apache.lucene.analysis.cn.ChineseAnalyzer;
import org.apache.lucene.analysis.cz.CzechAnalyzer;
import org.apache.lucene.analysis.de.GermanAnalyzer;
import org.apache.lucene.analysis.el.GreekAnalyzer;
import org.apache.lucene.analysis.fr.FrenchAnalyzer;
import org.apache.lucene.analysis.nl.DutchAnalyzer;
import org.apache.lucene.analysis.ru.RussianAnalyzer;
import org.apache.lucene.analysis.snowball.SnowballAnalyzer;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.analysis.th.ThaiAnalyzer;

import railo.commons.collection.MapFactory;
import railo.commons.lang.ClassUtil;
import railo.commons.lang.StringUtil;
import railo.runtime.search.SearchException;
import railo.runtime.search.lucene2.analyzer.DanishAnalyzer;
import railo.runtime.search.lucene2.analyzer.ItalianAnalyzer;
import railo.runtime.search.lucene2.analyzer.NorwegianAnalyzer;
import railo.runtime.search.lucene2.analyzer.PortugueseAnalyzer;
import railo.runtime.search.lucene2.analyzer.SpanishAnalyzer;
public final class SearchUtil {

  private static Map<String,Analyzer> analyzers=MapFactory.<String,Analyzer>getConcurrentMap();
 
  public static Analyzer getAnalyzer(String language) throws SearchException {
        if(language==null)language="english";
        else language=language.toLowerCase().trim();
        language=railo.runtime.search.SearchUtil.translateLanguage(language);
   
        Analyzer analyzer=analyzers.get(language);
        if(analyzer!=null) return analyzer;
       
       
        if(language.equals("english"))
          analyzer= new StandardAnalyzer();
        else if(language.equals("german"))    
          analyzer= new GermanAnalyzer();
        else if(language.equals("russian"))  
          analyzer= new RussianAnalyzer();
        else if(language.equals("dutch"))    
          analyzer= new DutchAnalyzer();
        else if(language.equals("french"))    
          analyzer= new FrenchAnalyzer();
        else if(language.equals("norwegian"))  
          analyzer= new NorwegianAnalyzer();
        else if(language.equals("portuguese"))  
          analyzer= new PortugueseAnalyzer();
        else if(language.equals("spanish"))  
          analyzer= new SpanishAnalyzer();
        else if(language.equals("brazilian"))  
          analyzer= new BrazilianAnalyzer();
        else if(language.equals("chinese"))  
          analyzer= new ChineseAnalyzer();
        else if(language.startsWith("czech"))  
          analyzer= new CzechAnalyzer();
        else if(language.equals("greek"))    
          analyzer= new GreekAnalyzer();
        else if(language.equals("thai"))
          analyzer= new ThaiAnalyzer();
        else if(language.equals("japanese"))
          analyzer= new CJKAnalyzer();
        else if(language.equals("korean"))
          analyzer= new CJKAnalyzer();

        else if(language.equals("italian"))
          analyzer= new ItalianAnalyzer();
        else if(language.equals("danish"))
          analyzer= new DanishAnalyzer();
        else if(language.equals("norwegian"))
          analyzer= new NorwegianAnalyzer();
        else if(language.equals("finnish"))
          analyzer= new SnowballAnalyzer( "Finnish" );
        else if(language.equals("swedish"))
          analyzer= new SnowballAnalyzer( "Swedish" );
       
       
        else {
          String clazzName="org.apache.lucene.analysis.el."+StringUtil.ucFirst(language.trim().toLowerCase())+"Analyzer;";
          Object o=ClassUtil.loadInstance(clazzName,(Object)null);
            if(o==null){
              clazzName="railo.runtime.search.lucene2.analyzer."+StringUtil.ucFirst(language.trim().toLowerCase())+"Analyzer";
              o=ClassUtil.loadInstance(clazzName,(Object)null);//Class.orName(clazzName).newInstance();
          }
            if(o instanceof Analyzer) analyzer=(Analyzer) o;
            else if(o==null)
               throw new SearchException("can't create Language Analyzer for Lanuage "+language+", make Analyzer ["+clazzName+"] available");
            else
                throw new SearchException( "can't create Language Analyzer for Lanuage "+language+", Analyzer ["+clazzName+"] is of invalid type");
        }       
        analyzers.put(language, analyzer);
        return analyzer;
    }
}
TOP

Related Classes of railo.runtime.search.lucene2.SearchUtil

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.