lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Paul Elschot (JIRA)" <j...@apache.org>
Subject [jira] Commented: (LUCENE-1001) Add Payload retrieval to Spans
Date Mon, 19 Nov 2007 21:08:43 GMT

    [ https://issues.apache.org/jira/browse/LUCENE-1001?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12543692
] 

Paul Elschot commented on LUCENE-1001:
--------------------------------------

I only wrote NearSpansOrdered. NearSpansOrdered is what is left of the original NearSpans
after the ordered case was taken out, and after I specialized NearSpans the unordered case.
That means I only simplified the original NearSpans.

Off the top of my head: the priority queue is used to make sure that the Spans are processed
by increasing doc numbers and increasing token positions; the first and the last Spans determine
whether there is a match, and all other Spans (in the queue) are "in between".

I think you'll only need to implement the Spans interface to use the same priority queue,
and you'll have to come up with a way to collect all the payloads from your payload spans
on a match.
Probably fairly straightforward, but with Spans there is always unexpected fun waiting around
the next corner :)



> Add Payload retrieval to Spans
> ------------------------------
>
>                 Key: LUCENE-1001
>                 URL: https://issues.apache.org/jira/browse/LUCENE-1001
>             Project: Lucene - Java
>          Issue Type: New Feature
>          Components: Search
>            Reporter: Grant Ingersoll
>            Assignee: Grant Ingersoll
>            Priority: Minor
>
> It will be nice to have access to payloads when doing SpanQuerys.
> See http://www.gossamer-threads.com/lists/lucene/java-dev/52270 and http://www.gossamer-threads.com/lists/lucene/java-dev/51134
> Current API, added to Spans.java is below.  I will try to post a patch as soon as I can
figure out how to make it work for unordered spans (I believe I have all the other cases working).
> {noformat}
>  /**
>    * Returns the payload data for the current span.
>    * This is invalid until {@link #next()} is called for
>    * the first time.
>    * This method must not be called more than once after each call
>    * of {@link #next()}. However, payloads are loaded lazily,
>    * so if the payload data for the current position is not needed,
>    * this method may not be called at all for performance reasons.<br>
>    * <br>
>    * <p><font color="#FF0000">
>    * WARNING: The status of the <b>Payloads</b> feature is experimental.
>    * The APIs introduced here might change in the future and will not be
>    * supported anymore in such a case.</font>
>    *
>    * @return a List of byte arrays containing the data of this payload
>    * @throws IOException
>    */
>   // TODO: Remove warning after API has been finalized
>   List/*<byte[]>*/ getPayload() throws IOException;
>   /**
>    * Checks if a payload can be loaded at this position.
>    * <p/>
>    * Payloads can only be loaded once per call to
>    * {@link #next()}.
>    * <p/>
>    * <p><font color="#FF0000">
>    * WARNING: The status of the <b>Payloads</b> feature is experimental.
>    * The APIs introduced here might change in the future and will not be
>    * supported anymore in such a case.</font>
>    *
>    * @return true if there is a payload available at this position that can be loaded
>    */
>   // TODO: Remove warning after API has been finalized
>   public boolean isPayloadAvailable();
> {noformat}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


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


Mime
View raw message