lucene-solr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Yonik Seeley (JIRA)" <>
Subject [jira] Commented: (SOLR-1725) Script based UpdateRequestProcessorFactory
Date Wed, 27 Jan 2010 15:16:34 GMT


Yonik Seeley commented on SOLR-1725:

Cool feature!

 - It looks like scripts are read from the resource loader and parsed again (eval) for every
update request. This can be pretty expensive, esp for those scripting languages that generate
java class files instead of using an interpreter. One way to combat this would be to cache
and reuse them.

- Should we have a way to specify a script in-line (in solrconfig.xml)?
- Or even cooler... allow passing of scripts as parameters in the update request! Think about
the power of pointing Solr to a CSV file and also providing document transformers & field
manipulators on the fly!
- This seems to raise the visibility of the UpdateCommand classes, directly exposing them
to users w/o plugins. We should perhaps consider interface cleanups on these classes at the
same time as this issue.
- Examples! Using javascript (since it's both fast and included in JDK6), let's see what the
scripts are for some common usecases. This both helps improve the design as well as lets other
people give feedback w/o having to read through code.

> Script based UpdateRequestProcessorFactory
> ------------------------------------------
>                 Key: SOLR-1725
>                 URL:
>             Project: Solr
>          Issue Type: New Feature
>          Components: update
>    Affects Versions: 1.4
>            Reporter: Uri Boness
>         Attachments: SOLR-1725.patch, SOLR-1725.patch, SOLR-1725.patch, SOLR-1725.patch,
> A script based UpdateRequestProcessorFactory (Uses JDK6 script engine support). The main
goal of this plugin is to be able to configure/write update processors without the need to
write and package Java code.
> The update request processor factory enables writing update processors in scripts located
in {{solr.solr.home}} directory. The functory accepts one (mandatory) configuration parameter
named {{scripts}} which accepts a comma-separated list of file names. It will look for these
files under the {{conf}} directory in solr home. When multiple scripts are defined, their
execution order is defined by the lexicographical order of the script file name (so {{scriptA.js}}
will be executed before {{scriptB.js}}).
> The script language is resolved based on the script file extension (that is, a *.js files
will be treated as a JavaScript script), therefore an extension is mandatory.
> Each script file is expected to have one or more methods with the same signature as the
methods in the {{UpdateRequestProcessor}} interface. It is *not* required to define all methods,
only those hat are required by the processing logic.
> The following variables are define as global variables for each script:
>  * {{req}} - The SolrQueryRequest
>  * {{rsp}}- The SolrQueryResponse
>  * {{logger}} - A logger that can be used for logging purposes in the script

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message