List Info

Thread: Commented: (SOLR-139) Support updateable/modifiable documents




Commented: (SOLR-139) Support updateable/modifiable documents
country flaguser name
United States
2007-07-30 21:26:53
    [ https://issues.apache.org/jira/browse/SO
LR-139?page=com.atlassian.jira.plugin.system.issuetabpanels:
comment-tabpanel#action_12516598 ] 

Ryan McKinley commented on SOLR-139:
------------------------------------


> 
> So I think that we need a modifyDocument() call on
updateHandler, and perhaps a ModifyUpdateCommand to go along
with it.
> 
> I'm not sure yet what this means for request
processors.  Perhaps another method that handles the
reloaded storedFields?
>

Another option might be some sort of transaction or locking
model.  Could it block other requests while there is an open
transaction/lock?

Consider the case where we need the same atomic protection
for fields loaded from non-stored fields loaded from a SQL
database.  In this case, it may be nice to have
locking/blocking happen at the processor level.

I don't know synchronized well enough to know if this works
or is a bad idea, but what about something like:

class ModifyExistingDocumentProcessor {
  void processAdd(AddUpdateCommand cmd) {
    String id = cmd.getIndexedId(schema);
    synchronized( updateHandler ) {
       SolrDocument existing =
updateHandler.loadStoredFields( id );
       myCustomHelper.loadTagsFromDB( existing );
       cmd.solrDoc = ModifyDocumentUtils.modifyDocument( ...
);
       
       // This eventually calls: updateHandler.addDoc(cmd);
       super.processAdd(cmd);
    }
  }
}

This type of approach would need to make sure everyone
modifying fields was locking on the same updateHandler.

- - - -

I'm not against adding a ModifyUpdateCommand, I just like
having the modify logic sit outside the UpdateHandler.

> Support updateable/modifiable documents
> ---------------------------------------
>
>                 Key: SOLR-139
>                 URL: https:
//issues.apache.org/jira/browse/SOLR-139
>             Project: Solr
>          Issue Type: Improvement
>          Components: update
>            Reporter: Ryan McKinley
>            Assignee: Ryan McKinley
>         Attachments: getStoredFields.patch,
getStoredFields.patch, getStoredFields.patch,
getStoredFields.patch, getStoredFields.patch,
SOLR-139-IndexDocumentCommand.patch,
SOLR-139-IndexDocumentCommand.patch,
SOLR-139-IndexDocumentCommand.patch,
SOLR-139-IndexDocumentCommand.patch,
SOLR-139-IndexDocumentCommand.patch,
SOLR-139-IndexDocumentCommand.patch,
SOLR-139-IndexDocumentCommand.patch,
SOLR-139-IndexDocumentCommand.patch,
SOLR-139-IndexDocumentCommand.patch,
SOLR-139-IndexDocumentCommand.patch,
SOLR-139-IndexDocumentCommand.patch,
SOLR-139-ModifyInputDocuments.patch,
SOLR-139-ModifyInputDocuments.patch,
SOLR-139-XmlUpdater.patch,
SOLR-269+139-ModifiableDocumentUpdateProcessor.patch
>
>
> It would be nice to be able to update some fields on a
document without having to insert the entire document.
> Given the way lucene is structured, (for now) one can
only modify stored fields.
> While we are at it, we can support incrementing an
existing value - I think this only makes sense for numbers.
> for background, see:
> http://www.nabble.com/loading-many-doc
uments-by-ID-tf3145666.html#a8722293

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


[1]

about | contact  Other archives ( Real Estate discussion Medical topics )