Hi Chris/Erick, Does not work in the sense the order of documents does not change on changing sort from asc to desc. This could be just a trivial bug where UUID processor factory is generating uuid even if it is empty. This is on solr 5.3.0
Thanks, Susmit On Thu, Apr 14, 2016 at 2:30 PM, Chris Hostetter <hossman_luc...@fucit.org> wrote: > > I'm also confused by what exactly you mean by "doesn't work" but a general > suggestion you can try is putting the > RemoveBlankFieldUpdateProcessorFactory before your UUID Processor... > > > https://lucene.apache.org/solr/6_0_0/solr-core/org/apache/solr/update/processor/RemoveBlankFieldUpdateProcessorFactory.html > > If you are also worried about strings that aren't exactly empty, but > consist only of whitespace, you can put TrimFieldUpdateProcessorFactory > before RemoveBlankFieldUpdateProcessorFactory ... > > > https://lucene.apache.org/solr/6_0_0/solr-core/org/apache/solr/update/processor/TrimFieldUpdateProcessorFactory.html > > > : Date: Thu, 14 Apr 2016 12:30:24 -0700 > : From: Erick Erickson <erickerick...@gmail.com> > : Reply-To: solr-user@lucene.apache.org > : To: solr-user <solr-user@lucene.apache.org> > : Subject: Re: UUID processor handling of empty string > : > : What do you mean "doesn't work"? An empty string is > : different than not being present. Thee UUID update > : processor (I'm pretty sure) only adds a field if it > : is _absent_. Specifying it as an empty string > : fails that test so no value is added. > : > : At that point, if this uuid field is also the <unkqueKey>, > : then each doc that comes in with an empty field will replace > : the others. > : > : If it's _not_ the <unkqueKey>, the sorting will be confusing. > : All the empty string fields are equal, so the tiebreaker is > : the internal Lucene doc ID, which may change as merges > : happen. You can specify secondary sort fields to make the > : sort predictable (the <unkqueKey> field is popular for this). > : > : Best, > : Erick > : > : On Thu, Apr 14, 2016 at 12:18 PM, Susmit Shukla <shukla.sus...@gmail.com> > wrote: > : > Hi, > : > > : > I have configured solr schema to generate unique id for a collection > using > : > UUIDUpdateProcessorFactory > : > > : > I am seeing a peculiar behavior - if the unique 'id' field is > explicitly > : > set as empty string in the SolrInputDocument, the document gets indexed > : > with UUID update processor generating the id. > : > However, sorting does not work if uuid was generated in this way. Also > : > cursor functionality that depends on unique id sort also does not work. > : > I guess the correct behavior would be to fail the indexing if user > provides > : > an empty string for a uuid field. > : > > : > The issues do not happen if I omit the id field from the > SolrInputDocument . > : > > : > SolrInputDocument > : > > : > solrDoc.addField("id", ""); > : > > : > ... > : > > : > I am using schema similar to below- > : > > : > <!--schema.xml--> > : > > : > <fieldType name="uuid" class="solr.UUIDField" indexed="true" /> > : > > : > <field name="id" type="uuid" indexed="true" stored="true" > required="true" /> > : > > : > <uniqueKey>id</uniqueKey> > : > > : > <!--solrconfig.xml--> > : > <updateRequestProcessorChain name="uuid"> > : > <processor class="solr.UUIDUpdateProcessorFactory"> > : > <str name="fieldName">id</str> > : > </processor> > : > <processor class="solr.RunUpdateProcessorFactory" /> > : > </updateRequestProcessorChain> > : > > : > > : > <requestHandler name="/update" class="solr.UpdateRequestHandler"> > : > <lst name="defaults"> > : > <str name="update.chain">uuid</str> > : > </lst> > : > </requestHandler> > : > > : > > : > Thanks, > : > Susmit > : > > -Hoss > http://www.lucidworks.com/ >