Thanks very much Uwe and Mikhail! Your points are all very well taken, so far it seems to work well, i will test more to verify details.
Lisheng On Fri, Sep 21, 2018 at 3:54 AM Uwe Schindler <u...@thetaphi.de> wrote: > Hi, > > in general your approach is right, but you have to do it correctly. It > depends on the Collector subclass you are using. The simplest is to > subclass SimpleCollector: > https://lucene.apache.org/core/7_4_0/core/org/apache/lucene/search/SimpleCollector.html > > There you have to override 2 methods: > > doSetNextReader(LeafReaderContext context): Here you call *once* > context.reader().getBinaryDocValues(String field) and save the thing in a > private member field "actReaderdocValues" of the collector (non-final). > > In collect(docId) you can then call actReaderdocValues.advanceExact(docId) > and retrieve the value. As collect is always called "in order", its safe to > use advanceExact(). > > Important is: Don't get a new docvalues instance on each call and > advanceExact()! This is only needed for out of order! So in combination > with an collector (like above) you get maximum performance, as everything > is per leaf reader and in order. > > Uwe > > ----- > Uwe Schindler > Achterdiek 19, D-28357 Bremen > http://www.thetaphi.de > eMail: u...@thetaphi.de > > > -----Original Message----- > > From: Lisheng Zhang <lz0522...@gmail.com> > > Sent: Friday, September 21, 2018 3:23 AM > > To: java-user@lucene.apache.org > > Subject: How to access DocValues inside a customized collector? > > > > we need to use binary DocValues (in a customized collector) added during > > indexing, i first tested in standard TopScoreDocCollector, it seems that > we > > need to: > > > > LeafReaderContext => reader() => get binary iterator => advanced to > correct > > location > > > > Is this the correct way or actually we have a better API (since we > already > > in that docId it seems to me that the binary DocValues should be readily > > available? > > > > Also do we have a way to see directly indexed data (Luke seems obsolete, > > Marple does not work with lucene 7.4.0 yet)? > > > > Thanks very much for helps, Lisheng > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org > For additional commands, e-mail: java-user-h...@lucene.apache.org > >