I am seeing the UUID getting generated when I set the field as empty string like this - solrDoc.addField("id", ""); with solr 5.3.1 and based on the above schema. The resulting documents in the index are searchable but not sortable. Someone could verify if this bug exists and file a jira.
Thanks, Susmit On Sat, Apr 16, 2016 at 8:56 AM, Jack Krupansky <jack.krupan...@gmail.com> wrote: > "UUID processor factory is generating uuid even if it is empty." > > The processor will generate the UUID only if the id field is not specified > in the input document. Empty value and value not present are not the same > thing. > > So, please clarify your specific situation. > > > -- Jack Krupansky > > On Thu, Apr 14, 2016 at 7:20 PM, Susmit Shukla <shukla.sus...@gmail.com> > wrote: > > > 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/ > > > > > >