Hmmm, not quite sure what's going on here, but then I'm not deeply into the code for ordering sub-requests.
But adding a secondary sort is probably the easiest and will stand you in good stead going forward. Erick On Wed, Sep 9, 2015 at 9:35 PM, Modassar Ather <modather1...@gmail.com> wrote: > Thanks Erick. There are no replicas on my cluster and the indexing is one > time. No updates or additions are done to the index and the segments are > optimized at the end of indexing. > So adding a secondary sort criteria is the only solution for such issue in > sort? > > Regards, > Modassar > > On Wed, Sep 9, 2015 at 8:21 PM, Erick Erickson <erickerick...@gmail.com> > wrote: > >> When the primary sort criteria is identical for two documents, >> then the _internal_ Lucene document ID is used to break the >> tie. The internal ID for two docs can be not only different, but >> in different _order_ on two separate shards. I'm assuming here >> that each of your shards has multiple replicas and/or you're >> continuing to index to your cluster. >> >> The relative internal doc IDs for may change even relative to >> each other when segments get merged. >> >> So yes, if you are sorting by something that can be identical >> in documents, it's always best to specify a secondary sort >> criteria. It's not referenced unless there's a tie so it's >> not that expensive. People often use whatever field >> is defined for <uniqueKey> since that's _guaranteed_ to >> never be the same for two docs. >> >> Best, >> Erick >> >> On Wed, Sep 9, 2015 at 1:45 AM, Modassar Ather <modather1...@gmail.com> >> wrote: >> > Hi, >> > >> > Search results are changed every time the following query is hit. Please >> > note that it is 7 shard cluster of Solr-5.2.1. >> > >> > Query: q=network&start=50&rows=50&sort=f_sort >> asc&group=true&group.field=id >> > >> > Following are the fields and their types in my schema.xml. >> > >> > <fieldType name="string" class="solr.StrField" sortMissingLast="true" >> > stored="false" omitNorms="true"/> >> > <fieldType name="string_dv" class="solr.StrField" sortMissingLast="true" >> > stored="false" indexed="true" docValues="true"/> >> > >> > <field name="id" type="string" stored="true"/> >> > <dynamicField name="*_sort" type="string_dv"/> >> > >> > As per my understanding it seems to be the issue of tie among the >> document >> > as when I added a new sort field like below the result never changed >> across >> > multiple hits. >> > q=network&start=50&rows=50&sort=f_sort asc, score >> > asc&group=true&group.field=id >> > >> > Kindly let me know if this is an issue or how this can be fixed. >> > >> > Thanks, >> > Modassar >>