[ 
https://issues.apache.org/jira/browse/SOLR-269?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12509733
 ] 

Ryan McKinley commented on SOLR-269:
------------------------------------

maybe.  I'm not sure I totally understand your suggestion though.  

I need something that is easily subclassed and can cleanly holds state across 
an entire request cycle.  The alternative is to pass the 
SolrQueryRequest/Response into each action and maybe pull out the 
schema/updateHandler/logged in user/etc for each command (each document in the 
list of 100)

Is the factory a performance concern?  (to my tastes) it seems nicer to work 
with:
 
 processDelete( DeleteUpdateCommand cmd )
 {
   if( user.isAdmin() ) {
     updateHandler.delete( cmd );
   }  
   else {
        ...
   }
 }
 
 than:
 
 processDelete( DeleteUpdateCommand cmd, SolrQueryRequest req, 
SolrQueryResponse rsp )
 {
   User user = req.getContext().get( "user" );
   if( user.isAdmin() ) {
    SolrCore core = req.getCore();
    SolrSchema schema = core.getSchema();
    UpdateHandler updateHandler = core.getUpdateHandler();
    updateHandler.delete( cmd );
   }  
   else {
     ...
   }
 }
 
I'm fine either way, like the easy 1 per-request interface.  

> UpdateRequestProcessorFactory - process requests before submitting them
> -----------------------------------------------------------------------
>
>                 Key: SOLR-269
>                 URL: https://issues.apache.org/jira/browse/SOLR-269
>             Project: Solr
>          Issue Type: New Feature
>            Reporter: Ryan McKinley
>            Assignee: Ryan McKinley
>             Fix For: 1.3
>
>         Attachments: SOLR-269-UpdateRequestProcessorFactory.patch
>
>
> A simple UpdateRequestProcessor was added to a bloated SOLR-133 commit. 
> An UpdateRequestProcessor lets clients plug in logic after a document has 
> been parsed and before it has been 'updated' with the index.  This is a good 
> place to add custom logic for:
>  * transforming the document fields
>  * fine grained authorization (can user X updated document Y?)
>  * allow update, but not delete (by query?)
>    <requestHandler name="/update" class="solr.StaxUpdateRequestHandler" >
>      <str 
> name="update.processor.class">org.apache.solr.handler.UpdateRequestProcessor</str>
>      <lst name="update.processor.args">
>       ... (optionally pass in arguments to the factory init method) ...
>      </lst> 
>    </requestHandler>
> http://www.nabble.com/Re%3A-svn-commit%3A-r547495---in--lucene-solr-trunk%3A-example-solr-conf-solrconfig.xml-src-java-org-apache-solr-handler-StaxUpdateRequestHandler.java-src-java-org-apache-solr-handler-UpdateRequestProcessor.jav-tf3950072.html#a11206583

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

Reply via email to