My case is when I get some docs from lucene, I need also get some field value of the retrieved docs.
For example in lucene 4, I use FieldCache like this. FieldCache.DEFAULT.getTerms(reader, name, false).get(locDocId).utf8ToString(); FieldCache.DEFAULT.getInts(reader, name, false).get(locDocId); FieldCache.DEFAULT.getDoubles(reader, name, false).get(locDocId); while docId may be not in ascending order. Of course I can use stored field like this Document doc = indexSearcher.doc(docId, storedFields.keySet()); But the performance should be worse than FieldCache. 2018-04-12 19:57 GMT+08:00 Adrien Grand <jpou...@gmail.com>: > Hello, > > Doc values should be used instead of the field cache indeed. Note that this > require to add them to your documents at index time, eg. with a > NumericDocValuesField. > > Regarding random access, maybe you can use the advanceExact API, which > exists on all doc-value iterators. Just make sure to never call it on > decreasing doc IDs. If that doesn't work for you, can you describe you > use-case, maybe there are better ways to implement what you need. > > Le jeu. 12 avr. 2018 à 13:54, Yonghui Zhao <zhaoyong...@gmail.com> a > écrit : > > > Hi, > > > > I am upgrading my project from Lucene 4 to 7. > > > > FieldCache is removed in lucene 7, DocValue is replacement? > > > > But seems DocValue doesn't support random access. > > > > I need random access to get some specified field value quickly. > > > > So how to solve it? > > >