In an attempt to make some backwards compatibilities (to a lucene 4.7 java 6) we would like to create a custom comparator that will parse a term field and make the sort based on some inner properties of that field.
Started out with an implementation for FieldComparator the loaded BinaryDocValues using FieldCache.DEFAULT.getTerms(arc,FIELD,false); This works pretty well (not that slow) but for some reason every now and that (having figured out the triggering conditions) - the BinaryDocValues map ByteRefs that fails to point to the actual term (ByteRefs is empty). This can be avoided in tests by calling purgeAllCaches on default before the getTerms() - hmm If we load the SortedSetDocValues with FieldCache.DEFAULT.getDocTermOrds(arc.reader(), FIELD); no unexplained empty values have been observed (but loading the actual term form here is not quite in scope for the set and is quite slow) Any thoughts on what when its ok to call FieldCache.DEFAULT.getTerms? - Or is this not really in any use anymore? Regards Hans Lund