lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Causse <dcau...@spotter.com>
Subject Re: determining the type of a term - retrieving a payload
Date Fri, 15 Oct 2010 08:34:06 GMT
On Wed, Oct 13, 2010 at 04:37:37PM +0100, Sykes, Derek wrote:
> Hi there,
> 
> I'm currently trying to work out how I can determine the type (string/number/date/etc)of
a term.  I've not seen any off the shelf way to do it so am trying to store a payload against
each term that records the type.
> 
> I'm having a little trouble retrieving a payload I'd stored onto the term.  At the moment
I'm using the TypeAsPayloadTokenFilter, however I'll change this soon as it's not really what
I'm after.
> 
> I'm then getting a TermEnum from either reader.terms() or using a PrefixTermEnum.
> 
> For each term I want the payload from I'm running this function:
> 
>     private String getPayload(Term term) {
>         String payload = null;
>         try {
>             TermPositions termPositions = reader.termPositions(term);
>             termPositions.next();
>             if (termPositions.isPayloadAvailable()) {
>                 byte[] payloadBytes = new byte[termPositions.getPayloadLength()];
>                 payloadBytes = termPositions.getPayload(payloadBytes, 0);
>                 payload = new String(payloadBytes);
>                 LOG.debug(payload);
>             }
>         }
>         catch( IOException e) {
> ...
> 
> This never returns anything though.

Hi,

my guess is that you need to call nextPosition, why not something like
this :
// goto to the doc with skipTo(int internalId) or next()
// Iterate over positions
for(int i = 0; i < currentTermPos.freq(); i++) {
	int p = currentTermPos.nextPosition();
	payloadBuffer = currentTermPos.getPayload(payloadBuffer, 0);
	...
}

-- 
David Causse
Spotter
http://www.spotter.com/

---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org


Mime
View raw message