Index: src/java/org/apache/lucene/search/spans/NearSpansOrdered.java
===================================================================
--- src/java/org/apache/lucene/search/spans/NearSpansOrdered.java	(revision 678073)
+++ src/java/org/apache/lucene/search/spans/NearSpansOrdered.java	(working copy)
@@ -92,6 +92,11 @@
   // inherit javadocs
   public int end() { return matchEnd; }
 
+  public Spans[] getSubSpans() {
+	  return subSpans;
+  }
+
+  
   // inherit javadocs
   public boolean next() throws IOException {
     if (firstTime) {
Index: src/java/org/apache/lucene/search/spans/NearSpansUnordered.java
===================================================================
--- src/java/org/apache/lucene/search/spans/NearSpansUnordered.java	(revision 678073)
+++ src/java/org/apache/lucene/search/spans/NearSpansUnordered.java	(working copy)
@@ -28,7 +28,8 @@
 class NearSpansUnordered implements Spans {
   private SpanNearQuery query;
 
-  private List ordered = new ArrayList();         // spans in query order
+  private List<SpansCell> ordered = new ArrayList<SpansCell>();         // spans in query order
+  private Spans[] subSpans;
   private int slop;                               // from query
 
   private SpansCell first;                        // linked list of spans
@@ -111,13 +112,17 @@
 
     SpanQuery[] clauses = query.getClauses();
     queue = new CellQueue(clauses.length);
+    subSpans = new Spans[clauses.length];
     for (int i = 0; i < clauses.length; i++) {
       SpansCell cell =
         new SpansCell(clauses[i].getSpans(reader), i);
       ordered.add(cell);
+      subSpans[i] = cell.spans;
     }
   }
-
+  public Spans[] getSubSpans() {
+	  return subSpans;
+  }
   public boolean next() throws IOException {
     if (firstTime) {
       initList(true);
Index: src/java/org/apache/lucene/search/spans/SpanNearQuery.java
===================================================================
--- src/java/org/apache/lucene/search/spans/SpanNearQuery.java	(revision 678073)
+++ src/java/org/apache/lucene/search/spans/SpanNearQuery.java	(working copy)
@@ -38,7 +38,7 @@
   private int slop;
   private boolean inOrder;
 
-  private String field;
+  protected String field;
 
   /** Construct a SpanNearQuery.  Matches spans matching a span from each
    * clause, with up to <code>slop</code> total unmatched positions between
