lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Bob Price <rjpric...@gmail.com>
Subject Re: problem with payload retrieval in custom query - lucene 5.3.1
Date Thu, 24 Dec 2015 16:00:33 GMT
Thanks Adrien!  That was the missing piece.  Now I can access the payloads.

On Thu, Dec 24, 2015 at 8:50 AM, Adrien Grand <jpountz@gmail.com> wrote:

> Note that payloads are stored per position, not per document. Maybe the
> problem is that you never call docs.nextPosition()?
>
> Le mer. 23 déc. 2015 à 19:30, Bob Price <rjprice72@gmail.com> a écrit :
>
> > Via elasticsearch 2.1 we have written a custom Lucene TokenFilter that
> adds
> > a payload to a special term during indexing analysis, and we also have
> > custom Lucene Query/Weight/Scorer classes that compare this payload
> against
> > some query data to decide if a document matches a query or not.
> >
> > I know that the payloads are being written as desired since I can easily
> > see them via elasticsearch's termvector API.
> >
> > However, while our Scorer can see all of the documents with this special
> > term, I can never get access to its payload.
> >
> > The approach to doing this in the Scorer is simply:
> >
> > docs = leafReaderContext.reader().postings(specialTerm,
> > PostingsEnum.PAYLOADS);
> >
> > Then, walking through the docs via nextDoc() and trying to retrieve each
> > doc's payload via:
> >
> > BytesRef payloadRef = docs.getPayload();
> > if (payloadRef != null) {
> >    byte[] payload = payloadRef.bytes;
> >
> > }
> >
> > I have logging in place so that I see that every document I have in a
> test
> > index is being looked at, but for every document, the payloadRef comes
> back
> > null.
> >
> > What am I doing wrong?  Is there some setting I need to enable somewhere
> to
> > allow the postings method to do what it says it can do?
> >
> > Is there a better way to do this?
> >
> > Any advice would be appreciated!
> >
> > Bob
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message