How about Optimistic Concurrency with _version_ set to negative value? You could inject that extra value in URP chain if need be.
Regards, Alex On Wed, Nov 27, 2019, 5:41 PM Aaron Hoffer, <aa...@hoffer.org> wrote: > We want to prevent Solr from overwriting an existing document if document's > ID already exists in the core. > > This unit test fails because the update/overwrite is permitted: > > public void testUpdateProhibited() { > final Index index = baseInstance(); > indexRepository.save(index); > Index index0 = indexRepository.findById(INDEX_ID).get(); > index0.setContents("AAA"); > indexRepository.save(index0); > Index index1 = indexRepository.findById(INDEX_ID).get(); > assertThat(index, equalTo(index1)); > } > > > The failure is: > Expected: <Index(contents=AAA, id=a2d8464ed41b4766a888617ecbcac573, ...> > but: was <Index(contents=Winterfell, id=a2d8464ed41b4766a888617ecbcac573, > ...> > > What do I need to do prevent the second save from overwriting the existing > document? > > I commented out the updateHandler in the solr config file, to no effect. > We are using Spring Data with Solr 8.1. > In the core's schema, id is defined as unique like this: > <uniqueKey>id</uniqueKey> >