I'm using Lucene via Solr and recently upgraded from an early Summer nightly build to the released version of Solr 1.3 (which seems to use something in the neighborhood of Lucene 2.3). I'm posting this here because I believe that my issue is with Lucene, not Solr.
After the upgrade, I noticed that the order of fields being returned for documents had changed. Previously, the order of fields being returned was the same as the order in which they were added to the document (which is what's stated in the FAQ and other places I came across but not specifically spelled out in the Javadoc). Now, the fields always seem to come back in lexicographic order by field name. I believe (but am by no means sure) that this is being caused by the following bit of code in DocFieldProcessorPerThread.java: // If we are writing vectors then we must visit // fields in sorted order so they are written in // sorted order. TODO: we actually only need to // sort the subset of fields that have vectors // enabled; we could save [small amount of] CPU // here. quickSort(fields, 0, fieldCount-1); for(int i=0;i<fieldCount;i++) fields[i].consumer.processFields(fields[i].fields, fields[i].fieldCount); This code seems to sort the fields of the document into order before processing them. If this is true, then the original field order is lost and can't ever be recovered. (None of the fields in our index use TermVectors.) My questions are: Is my reading of this behavior correct? ...and... if so: Is there some other way to get the original order back? The application that I'm building took some advantage of the fact that the fields were returned in the orignial order (becuase the order had some meaning) and it may be difficult for me to work around this change. Patrick Johnstone DejaVu Networks pjohnst...@dejavunet.net --------------------------------------------------------------------- To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org For additional commands, e-mail: java-user-h...@lucene.apache.org