[
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.