Issue Details (XML | Word | Printable)

Key: LUCENE-1001
Type: New Feature New Feature
Status: Closed Closed
Resolution: Fixed
Priority: Minor Minor
Assignee: Grant Ingersoll
Reporter: Grant Ingersoll
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Lucene - Java

Add Payload retrieval to Spans

Created: 16/Sep/07 02:48 AM   Updated: 21/Nov/08 09:46 PM
Return to search
Component/s: Search
Affects Version/s: None
Fix Version/s: 2.4

Time Tracking:
Not Specified

File Attachments:
  Size
Text File Licensed for inclusion in ASF works LUCENE-1001-fix.patch 2008-11-21 02:37 AM Mark Miller 7 kB
Text File Licensed for inclusion in ASF works LUCENE-1001.patch 2008-08-19 09:43 PM Mark Miller 56 kB
Text File Licensed for inclusion in ASF works LUCENE-1001.patch 2008-08-19 02:39 PM Grant Ingersoll 58 kB
Text File Licensed for inclusion in ASF works LUCENE-1001.patch 2008-08-11 08:56 PM Mark Miller 55 kB
Text File Licensed for inclusion in ASF works LUCENE-1001.patch 2008-08-11 01:22 AM Mark Miller 55 kB
Text File Licensed for inclusion in ASF works LUCENE-1001.patch 2008-08-10 03:47 AM Mark Miller 46 kB
Text File Licensed for inclusion in ASF works LUCENE-1001.patch 2008-08-09 05:02 PM Mark Miller 43 kB
Text File Licensed for inclusion in ASF works LUCENE-1001.patch 2007-11-26 02:26 PM Grant Ingersoll 44 kB
Text File Licensed for inclusion in ASF works LUCENE-1001.patch 2007-11-25 05:52 PM Grant Ingersoll 43 kB
Issue Links:
Reference
 

Lucene Fields: Patch Available
Resolution Date: 20/Aug/08 04:07 PM


 Description  « Hide
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).

 /**
   * 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();


 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Repository Revision Date User Message
ASF #687379 Wed Aug 20 16:06:36 UTC 2008 gsingers LUCENE-1001: Make payloads accessible from SpanQuery's
Files Changed
MODIFY /lucene/java/trunk/src/java/org/apache/lucene/search/spans/NearSpansOrdered.java
MODIFY /lucene/java/trunk/contrib/regex/src/java/org/apache/lucene/search/regex/SpanRegexQuery.java
MODIFY /lucene/java/trunk/src/test/org/apache/lucene/search/spans/TestSpans.java
MODIFY /lucene/java/trunk/src/test/org/apache/lucene/search/payloads/TestBoostingTermQuery.java
ADD /lucene/java/trunk/src/java/org/apache/lucene/search/payloads/PayloadSpanUtil.java
MODIFY /lucene/java/trunk/src/java/org/apache/lucene/search/spans/SpanFirstQuery.java
MODIFY /lucene/java/trunk/src/java/org/apache/lucene/search/spans/SpanQuery.java
MODIFY /lucene/java/trunk/src/java/org/apache/lucene/search/spans/TermSpans.java
MODIFY /lucene/java/trunk/src/java/org/apache/lucene/search/spans/SpanNotQuery.java
MODIFY /lucene/java/trunk/src/java/org/apache/lucene/search/spans/SpanOrQuery.java
ADD /lucene/java/trunk/src/test/org/apache/lucene/search/spans/TestPayloadSpans.java
ADD /lucene/java/trunk/src/test/org/apache/lucene/search/payloads/PayloadHelper.java
ADD /lucene/java/trunk/src/java/org/apache/lucene/search/spans/PayloadSpans.java
MODIFY /lucene/java/trunk/src/java/org/apache/lucene/search/spans/SpanNearQuery.java
MODIFY /lucene/java/trunk/CHANGES.txt
MODIFY /lucene/java/trunk/src/java/org/apache/lucene/search/spans/SpanTermQuery.java
MODIFY /lucene/java/trunk/src/java/org/apache/lucene/search/spans/NearSpansUnordered.java

Repository Revision Date User Message
ASF #800925 Tue Aug 04 19:10:02 UTC 2009 markrmiller LUCENE-1748: LUCENE-1001 introduced PayloadSpans, but this was a back compat break and caused custom SpanQuery implementations to fail at runtime in a variety of ways. This issue attempts to remedy things by causing a compile time break on custom SpanQuery implementations and removing the PayloadSpans class, with its functionality now moved to Spans.
Files Changed
MODIFY /lucene/java/trunk/src/test/org/apache/lucene/search/TestPositionIncrement.java
MODIFY /lucene/java/trunk/src/java/org/apache/lucene/search/spans/Spans.java
MODIFY /lucene/java/trunk/src/java/org/apache/lucene/search/spans/NearSpansOrdered.java
MODIFY /lucene/java/trunk/contrib/regex/src/java/org/apache/lucene/search/regex/SpanRegexQuery.java
MODIFY /lucene/java/trunk/src/java/org/apache/lucene/search/payloads/PayloadSpanUtil.java
MODIFY /lucene/java/trunk/src/test/org/apache/lucene/search/spans/JustCompileSearchSpans.java
MODIFY /lucene/java/trunk/src/java/org/apache/lucene/search/spans/FieldMaskingSpanQuery.java
MODIFY /lucene/java/trunk/src/java/org/apache/lucene/search/spans/SpanFirstQuery.java
MODIFY /lucene/java/trunk/src/java/org/apache/lucene/search/spans/SpanQuery.java
MODIFY /lucene/java/trunk/src/java/org/apache/lucene/search/spans/TermSpans.java
MODIFY /lucene/java/trunk/src/java/org/apache/lucene/search/spans/SpanNotQuery.java
MODIFY /lucene/java/trunk/src/java/org/apache/lucene/search/spans/SpanOrQuery.java
MODIFY /lucene/java/trunk/src/test/org/apache/lucene/search/spans/TestPayloadSpans.java
DEL /lucene/java/trunk/src/java/org/apache/lucene/search/spans/PayloadSpans.java
MODIFY /lucene/java/trunk/src/java/org/apache/lucene/search/spans/SpanNearQuery.java
MODIFY /lucene/java/trunk/CHANGES.txt
MODIFY /lucene/java/trunk/src/java/org/apache/lucene/search/spans/SpanTermQuery.java
MODIFY /lucene/java/trunk/src/java/org/apache/lucene/search/spans/NearSpansUnordered.java
MODIFY /lucene/java/trunk/common-build.xml