Segmentation of data imports (not just full or single record imports)
---------------------------------------------------------------------

                 Key: SOLR-1613
                 URL: https://issues.apache.org/jira/browse/SOLR-1613
             Project: Solr
          Issue Type: New Feature
          Components: contrib - DataImportHandler
    Affects Versions: 1.4
            Reporter: Matt Inger


It is desirable to able to segment imports by a particular field in the root 
entity record so that you can update a particular segment of your database when 
bulk updates occur on the backend database.  For instance, if a bulk update 
occurs for a particular customer, it would be more efficient to be able to 
update a full segment of your index for that customer rather than issuing 
updates for every single user in your index for that customer, or updating the 
entire index.  That would be a waste of processing power.

Instead, it would be more efficient to specify that a particular document field 
in the root entity was a segmentation field, and define an additional query on 
the root entity (i'm basing my example on a jdbc based datasource):

<entity name="user" pk="userid" segment="customerid" ... 
             query="..." segmentQuery="select ... where 
customerid=${dataimporter.request.segment}" />

Then, when you request a segment update, you specify the segment as a parameter 
to your request

    /solr/db/dataimport?command=segment-import&segment=1000


I've worked out the code segments required to do this for the JdbcDataSource, 
though I'm not sure what additional changes would be necessary for other 
datasource types, and am attaching a patch which includes these changes.

             

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