Dear Wiki user,

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

The "ScriptUpdateProcessor" page has been changed by ErikHatcher:
http://wiki.apache.org/solr/ScriptUpdateProcessor?action=diff&rev1=8&rev2=9

  
  The processAdd() and the other script methods can return false to skip 
further processing of the document.  All methods must be defined, though 
generally the processAdd() method is where the action is.
  
- == !JavaScript ==
+ == JavaScript ==
  
  Note: There is a !JavaScript example (update-script.js) built into the Solr 4 
and up example collection1 configuration.  Check solrconfig.xml and uncomment 
the update request processor definition to enable this feature.
  
@@ -118, +118 @@

  
  == JRuby ==
  
-   TBD
+ To use JRuby as the scripting engine, add jruby.jar to your system (in a lib/ 
directory under a collection, or via <lib> directives in solrconfig.xml).
+ 
+ Here's an example JRuby update processing script (note that all variables 
passed require prefixing with $, such as $logger):
+ 
+ {{{
+ def processAdd(cmd)
+   doc = cmd.solrDoc  # org.apache.solr.common.SolrInputDocument
+   id = doc.getFieldValue('id')
+ 
+   $logger.info "update-script#processAdd: id=#{id}"
+ 
+   doc.setField('source_s', 'ruby')
+ 
+   $logger.info "update-script#processAdd: 
config_param=#{$params.get('config_param')}"
+ end
+ 
+ def processDelete(cmd)
+   # no-op
+ end
+ 
+ def processMergeIndexes(cmd)
+   # no-op
+ end
+ 
+ def processCommit(cmd)
+   # no-op
+ end
+ 
+ def processRollback(cmd)
+   # no-op
+ end
+ 
+ def finish()
+   # no-op
+ end
+ }}}
+ 
+ ==== Known issues ====
+ 
+ The following in JRuby do not work as expected for some reason, though it 
does work properly in JavaScript:
+ 
+ {{{
+ #  $logger.info "update-script#processAdd: 
request_param=#{$req.getParams('request_param')}"
+ #  $rsp.add('script_processed',id)       # this is not working!
+ }}}
  
  == Jython ==
  
-   TBD
+   TODO
  
  = Caveats =
  
- TBD: More on the "stateless" nature, running multiple scripts that can share 
state, and more about other scripting languages available.
+ TBD: Add more on the "stateless" nature, running multiple scripts that can 
share state, and more about other scripting languages available.
  
  = Resources =
  

Reply via email to