[ https://issues.apache.org/jira/browse/SOLR-3173?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13218571#comment-13218571 ]
Yonik Seeley commented on SOLR-3173: ------------------------------------ Here's an idea: we already have a _version_ field for documents (that can also be passed in the URL for other things like deletes), we simply reuse that. Positive versions are adds, negative versions are deletes. If a document comes into the shad leader and already has a _version_, then it's considered an optimistic concurrency request... the document should be replacing an existing document with exactly that version. If the _version_ passed is negative, then the document should not already exist (all deleted documents are considered equal). No new config needed, and optimistic concurrency can be selected on a per-request basis to the same handler. > Database semantics - insert and update > -------------------------------------- > > Key: SOLR-3173 > URL: https://issues.apache.org/jira/browse/SOLR-3173 > Project: Solr > Issue Type: New Feature > Components: update > Affects Versions: 3.5 > Environment: All > Reporter: Per Steffensen > Assignee: Per Steffensen > Labels: RDBMS, insert, nosql, uniqueKey, update > Fix For: 4.0 > > Original Estimate: 168h > Remaining Estimate: 168h > > In order increase the ability of Solr to be used as a NoSql database (lots of > concurrent inserts, updates, deletes and queries in the entire lifetime of > the index) instead of just a search index (first: everything indexed (in one > thread), after: only queries), I would like Solr to support the following > features inspired by RDBMSs and other NoSql databases. > * Given a solr-core with a schema containing a uniqueKey-field "uniqueField" > and a document Dold, when trying to INSERT a new document Dnew where > Dold.uniqueField is equal to Dnew.uniqueField, then I want a > DocumentAlredyExists error. If no such document Dold exists I want Dnew > indexed into the solr-core. > * Given a solr-core with a schema containing a uniqueKey-field "uniqueField" > and a document Dold, when trying to UPDATE a document Dnew where > Dold.uniqueField is equal to Dnew.uniqueField I want Dold deleted from and > Dnew added to the index (just as it is today).If no such document Dold exists > I want nothing to happen (Dnew is not added to the index) -- 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