Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.apache.solr.update.processor;
  
  /*
   * Licensed to the Apache Software Foundation (ASF) under one or more
   * contributor license agreements.  See the NOTICE file distributed with
   * this work for additional information regarding copyright ownership.
   * The ASF licenses this file to You under the Apache License, Version 2.0
   * (the "License"); you may not use this file except in compliance with
   * the License.  You may obtain a copy of the License at
  *
  *     http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 
 import java.util.List;
 
 
Identifies the language of a set of input fields using http://code.google.com/p/language-detection

The UpdateProcessorChain config entry can take a number of parameters which may also be passed as HTTP parameters on the update request and override the defaults. Here is the simplest processor config possible:

 <processor class="org.apache.solr.update.processor.LangDetectLanguageIdentifierUpdateProcessorFactory">
   <str name="langid.fl">title,text</str>
   <str name="langid.langField">language_s</str>
 </processor>
 
See http://wiki.apache.org/solr/LanguageDetection

Since:
3.5
 
         UpdateRequestProcessorFactory implements SolrCoreAwareLangIdParams {
 
   protected SolrParams defaults;
   protected SolrParams appends;
   protected SolrParams invariants;
 
   @Override
   public void inform(SolrCore core) {
   }

  
The UpdateRequestProcessor may be initialized in solrconfig.xml similarly to a RequestHandler, with defaults, appends and invariants.

Parameters:
args a NamedList with the configuration parameters
 
   @Override
   @SuppressWarnings("rawtypes")
   public void initNamedList args )
   {
     try {
       loadData();
     } catch (Exception e) {
       throw new RuntimeException("Couldn't load profile data, will return empty languages always!"e);
     }
     if (args != null) {
       Object o;
       o = args.get("defaults");
       if (o != null && o instanceof NamedList) {
          = SolrParams.toSolrParams((NamedListo);
       } else {
          = SolrParams.toSolrParams(args);
       }
       o = args.get("appends");
       if (o != null && o instanceof NamedList) {
          = SolrParams.toSolrParams((NamedListo);
       }
       o = args.get("invariants");
       if (o != null && o instanceof NamedList) {
          = SolrParams.toSolrParams((NamedListo);
       }
     }
   }
                                            SolrQueryResponse rspUpdateRequestProcessor next) {
    // Process defaults, appends and invariants if we got a request
    if(req != null) {
      SolrPluginUtils.setDefaults(req);
    }
    return new LangDetectLanguageIdentifierUpdateProcessor(reqrspnext);
  }
  
  
  // DetectorFactory is totally global, so we only want to do this once... ever!!!
  static boolean loaded;
  
  // profiles we will load from classpath
  static final String languages[] = {
    "af""ar""bg""bn""cs""da""de""el""en""es""et""fa""fi""fr""gu",
    "he""hi""hr""hu""id""it""ja""kn""ko""lt""lv""mk""ml""mr""ne",
    "nl""no""pa""pl""pt""ro""ru""sk""sl""so""sq""sv""sw""ta""te",
    "th""tl""tr""uk""ur""vi""zh-cn""zh-tw"
  };
  public static synchronized void loadData() throws IOExceptionLangDetectException {
    if () {
      return;
    }
     = true;
    List<StringprofileData = new ArrayList<String>();
    Charset encoding = Charset.forName("UTF-8");
    for (String language : ) {
      InputStream stream = LangDetectLanguageIdentifierUpdateProcessor.class.getResourceAsStream("langdetect-profiles/" + language);
      BufferedReader reader = new BufferedReader(new InputStreamReader(streamencoding));
      profileData.add(new String(IOUtils.toCharArray(reader)));
      reader.close();
    }
    DetectorFactory.loadProfile(profileData);
    DetectorFactory.setSeed(0);
  }
New to GrepCode? Check out our FAQ X