lucene-solr-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <wikidi...@apache.org>
Subject [Solr Wiki] Update of "DataImportHandler" by NoblePaul
Date Fri, 11 Dec 2009 04:41:33 GMT
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Solr Wiki" for change notification.

The "DataImportHandler" page has been changed by NoblePaul.
http://wiki.apache.org/solr/DataImportHandler?action=diff&rev1=235&rev2=236

--------------------------------------------------

   * ''encodeUrl'' : Us this to encode urls . eg : `'${dataimporter.functions.encodeUrl(item.ID)}'`
. Takes only one argument and must be a valid value in the !VariableResolver
  
  ==== Custom Functions ====
+ [[DIHCustomFunctions]]
- It is possible to plug in custom functions into DIH. Implement an [[http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/Evaluator.java?view=markup|Evalutor]]
and specify it in the data-config.xml . Following is an example of an evaluator which does
a 'toLowerCase' on a String.
- {{{
- <dataConfig>
-    <function name="toLowerCase" class="foo.LowerCaseFunctionEvaluator"/>
-    <document>
-    <entity query="select * from table where name='${dataimporter.functions.toLowerCase(dataimporter.request.user)'">
-     <!- ......field declarations......->
-    </entity>
- </dataConfig>
- }}}
- 
- The implementation of !LowerCaseFunctionEvaluator
- {{{
-   public class LowerCaseFunctionEvaluator implements Evaluator{
-     public String evaluate(String expression, Context context) {
-       List l = EvaluatorBag.parseParams(expression, context.getVariableResolver());
- 
-       if (l.size() != 1) {
-           throw new RuntimeException("'toLowerCase' must have only one parameter ");
-       }
-       return l.get(0).toString().toLowerCase();
- 
-     }
- 
-   }
- }}}
- 
  === Accessing request parameters ===
  All http request parameters sent to SOLR when using the dataimporter can be accessed using
the 'request' namespace eg: `'${dataimporter.request.command}'` will return the command that
was run.
  

Mime
View raw message