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.
