[ https://issues.apache.org/jira/browse/SOLR-1499?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13166042#comment-13166042 ]
Martijn van Groningen commented on SOLR-1499: --------------------------------------------- {quote} Regarding the thread safety: of course the SolrEntityProcessor isn't thread-safe but the synchronization is handled outside that class, since nextRow() and init() methods are both called from a synchronized block. In fact, queries are not executed concurrently. I added some comments, and a specific unit test method which works like the EntityRunner. We can of course make the processor thread-safe itself adding some lock, but I don't think it's worthwhile. {quote} I see the ThreadedEntityProcessorWrapper#nextRow() method synchronizes the calls to nextRow(). This means that EntityProcessor implementations don't have to worry about synchronization. > SolrEntityProcessor - DIH EntityProcessor that queries an external Solr via > SolrJ > --------------------------------------------------------------------------------- > > Key: SOLR-1499 > URL: https://issues.apache.org/jira/browse/SOLR-1499 > Project: Solr > Issue Type: New Feature > Components: contrib - DataImportHandler > Reporter: Lance Norskog > Fix For: 3.6, 4.0 > > Attachments: SOLR-1499.core.rev1182017.patch, SOLR-1499.patch, > SOLR-1499.patch, SOLR-1499.patch, SOLR-1499.patch, SOLR-1499.patch, > SOLR-1499.patch, SOLR-1499.patch, SOLR-1499.patch, SOLR-1499.patch, > SOLR-1499.tests.rev1182017.patch > > > The SolrEntityProcessor queries an external Solr instance. The Solr documents > returned are unpacked and emitted as DIH fields. > The SolrEntityProcessor uses the following attributes: > * solr='http://localhost:8983/solr/sms' > ** This gives the URL of the target Solr instance. > *** Note: the connection to the target Solr uses the binary SolrJ format. > * query='Jefferson&sort=id+asc' > ** This gives the base query string use with Solr. It can include any > standard Solr request parameter. This attribute is processed under the > variable resolution rules and can be driven in an inner stage of the indexing > pipeline. > * rows='10' > ** This gives the number of rows to fetch per request.. > ** The SolrEntityProcessor always fetches every document that matches the > request.. > * fields='id,tag' > ** This selects the fields to be returned from the Solr request. > ** These must also be declared as <field> elements. > ** As with all fields, template processors can be used to alter the contents > to be passed downwards. > * timeout='30' > ** This limits the query to 5 seconds. This can be used as a fail-safe to > prevent the indexing session from freezing up. By default the timeout is 5 > minutes. > Limitations: > * Solr errors are not handled correctly. > * Loop control constructs have not been tested. > * Multi-valued returned fields have not been tested. > The unit tests give examples of how to use it as the root entity and an inner > entity. -- 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