[ https://issues.apache.org/jira/browse/SOLR-1725?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13405416#comment-13405416 ]
Erik Hatcher commented on SOLR-1725: ------------------------------------ I'm not fond of a script having to implement all the functions, which seems to be the way the latest patch works. I tried a JRuby script that simply has this: {code} def processAdd(cmd) doc = cmd.solrDoc doc.addField('foo_s', 'bar') $logger.info("Added field to #{doc}") end {code} Which fails because "finish" isn't found. It's deceiving, because there is a test case to go along with conditional.updateprocessor.js, which just has processAdd, but the test case only calls processAdd, not a full document update from the outside. So at the very least, the .js scripts should all be fully fleshed out to what would work for real. But I really think we should default to no-op on all methods that don't exist when tried to invoke. Is that so bad? > Script based UpdateRequestProcessorFactory > ------------------------------------------ > > Key: SOLR-1725 > URL: https://issues.apache.org/jira/browse/SOLR-1725 > Project: Solr > Issue Type: New Feature > Components: update > Affects Versions: 1.4 > Reporter: Uri Boness > Assignee: Erik Hatcher > Labels: UpdateProcessor > Fix For: 4.1 > > Attachments: SOLR-1725-rev1.patch, SOLR-1725.patch, SOLR-1725.patch, > SOLR-1725.patch, SOLR-1725.patch, SOLR-1725.patch, SOLR-1725.patch, > SOLR-1725.patch, SOLR-1725.patch, 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. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org