You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ry...@apache.org on 2016/03/25 20:37:28 UTC

[1/2] lucene-solr:branch_6x: SOLR-8902: Make sure ReturnFields only returns the requested fields

Repository: lucene-solr
Updated Branches:
  refs/heads/branch_6x e26a44319 -> 9cbaa028d


SOLR-8902: Make sure ReturnFields only returns the requested fields


Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/8254724b
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/8254724b
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/8254724b

Branch: refs/heads/branch_6x
Commit: 8254724bb17fd4cf479ab34c3919d9a862ca4ea5
Parents: 39aaa10
Author: Ryan McKinley <ry...@apache.org>
Authored: Fri Mar 25 12:22:44 2016 -0700
Committer: Ryan McKinley <ry...@apache.org>
Committed: Fri Mar 25 12:22:44 2016 -0700

----------------------------------------------------------------------
 solr/CHANGES.txt                                        |  3 +++
 .../org/apache/solr/response/BinaryResponseWriter.java  | 11 ++++++++---
 .../java/org/apache/solr/search/SolrReturnFields.java   | 12 +-----------
 .../test/org/apache/solr/search/ReturnFieldsTest.java   |  8 ++++++++
 4 files changed, 20 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8254724b/solr/CHANGES.txt
----------------------------------------------------------------------
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index a9731e1..baca0df1 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -55,6 +55,9 @@ Bug Fixes
 * SOLR-8857: HdfsUpdateLog does not use configured or new default number of version buckets and is
   hard coded to 256. (Mark Miller, yonik, Gregory Chanan)
 
+* SOLR-8902: Make sure ReturnFields only returns the requested fields from (fl=) evn when 
+  DocumentTransformers ask for getExtraRequestFields()  (ryan)
+
 Optimizations
 ----------------------
 * SOLR-8722: Don't force a full ZkStateReader refresh on every Overseer operation.

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8254724b/solr/core/src/java/org/apache/solr/response/BinaryResponseWriter.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/response/BinaryResponseWriter.java b/solr/core/src/java/org/apache/solr/response/BinaryResponseWriter.java
index 6878f16..885bf78 100644
--- a/solr/core/src/java/org/apache/solr/response/BinaryResponseWriter.java
+++ b/solr/core/src/java/org/apache/solr/response/BinaryResponseWriter.java
@@ -72,8 +72,7 @@ public class BinaryResponseWriter implements BinaryQueryResponseWriter {
   public static class Resolver implements JavaBinCodec.ObjectResolver , JavaBinCodec.WritableDocFields {
     protected final SolrQueryRequest solrQueryRequest;
     protected IndexSchema schema;
-    protected SolrIndexSearcher searcher; // TODO - this is never set?  always null?
-    protected final ReturnFields returnFields;
+    protected ReturnFields returnFields;
 
     public Resolver(SolrQueryRequest req, ReturnFields returnFields) {
       solrQueryRequest = req;
@@ -83,7 +82,13 @@ public class BinaryResponseWriter implements BinaryQueryResponseWriter {
     @Override
     public Object resolve(Object o, JavaBinCodec codec) throws IOException {
       if (o instanceof ResultContext) {
-        writeResults((ResultContext) o, codec);
+        ReturnFields orig = returnFields;
+        ResultContext res = (ResultContext)o;
+        if(res.getReturnFields()!=null) {
+          returnFields = res.getReturnFields();
+        }
+        writeResults(res, codec);
+        returnFields = orig;
         return null; // null means we completely handled it
       }
       if (o instanceof DocList) {

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8254724b/solr/core/src/java/org/apache/solr/search/SolrReturnFields.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/search/SolrReturnFields.java b/solr/core/src/java/org/apache/solr/search/SolrReturnFields.java
index b84f4de..b667f0e 100644
--- a/solr/core/src/java/org/apache/solr/search/SolrReturnFields.java
+++ b/solr/core/src/java/org/apache/solr/search/SolrReturnFields.java
@@ -51,6 +51,7 @@ public class SolrReturnFields extends ReturnFields {
   private final List<String> globs = new ArrayList<>(1);
 
   // The lucene field names to request from the SolrIndexSearcher
+  // This *may* include fields that will not be in the final response
   private final Set<String> fields = new HashSet<>();
 
   // Field names that are OK to include in the response.
@@ -130,17 +131,6 @@ public class SolrReturnFields extends ReturnFields {
       augmenters.addTransformer( new RenameFieldTransformer( from, to, copy ) );
     }
 
-    if( !_wantsAllFields ) {
-      if( !globs.isEmpty() ) {
-        // TODO??? need to fill up the fields with matching field names in the index
-        // and add them to okFieldNames?
-        // maybe just get all fields?
-        // this would disable field selection optimization... i think thatis OK
-        fields.clear(); // this will get all fields, and use wantsField to limit
-      }
-      okFieldNames.addAll( fields );
-    }
-
     if( augmenters.size() == 1 ) {
       transformer = augmenters.getTransformer(0);
     }

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/8254724b/solr/core/src/test/org/apache/solr/search/ReturnFieldsTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/search/ReturnFieldsTest.java b/solr/core/src/test/org/apache/solr/search/ReturnFieldsTest.java
index f72aee8..459f959 100644
--- a/solr/core/src/test/org/apache/solr/search/ReturnFieldsTest.java
+++ b/solr/core/src/test/org/apache/solr/search/ReturnFieldsTest.java
@@ -264,6 +264,14 @@ public class ReturnFieldsTest extends SolrTestCaseJ4 {
     assertFalse( rf.wantsField( "id" ) );
     assertFalse(rf.wantsAllFields());
     assertNull(rf.getTransformer());
+
+    // Don't return 'store_rpt' just because it is required by the transformer
+    rf = new SolrReturnFields( req("fl", "[geo f=store_rpt]") );
+    assertFalse( rf.wantsScore() );
+    assertTrue(rf.wantsField("[geo]"));
+    assertFalse( rf.wantsField( "store_rpt" ) );
+    assertFalse(rf.wantsAllFields());
+    assertNotNull(rf.getTransformer());
   }
 
   @Test


[2/2] lucene-solr:branch_6x: Merge branch 'branch_6x' of https://git-wip-us.apache.org/repos/asf/lucene-solr into branch_6x

Posted by ry...@apache.org.
Merge branch 'branch_6x' of https://git-wip-us.apache.org/repos/asf/lucene-solr into branch_6x


Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/9cbaa028
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/9cbaa028
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/9cbaa028

Branch: refs/heads/branch_6x
Commit: 9cbaa028dc09774395b4454c1433a1b18bbdfb53
Parents: 8254724 e26a443
Author: Ryan McKinley <ry...@apache.org>
Authored: Fri Mar 25 12:36:30 2016 -0700
Committer: Ryan McKinley <ry...@apache.org>
Committed: Fri Mar 25 12:36:30 2016 -0700

----------------------------------------------------------------------
 lucene/CHANGES.txt                              |  12 +
 .../org/apache/lucene/util/bkd/BKDWriter.java   |  14 +-
 .../lucene/util/bkd/OfflinePointReader.java     |  25 ++
 .../org/apache/lucene/util/bkd/PointReader.java |  12 +
 .../highlight/WeightedSpanTermExtractor.java    |   7 +-
 .../custom/HighlightCustomQueryTest.java        |  15 +
 .../org/apache/lucene/search/join/JoinUtil.java | 274 ++++++++++++++-
 .../join/PointInSetIncludingScoreQuery.java     | 340 +++++++++++++++++++
 .../apache/lucene/search/join/TestJoinUtil.java |  54 ++-
 .../lucene/spatial3d/geom/PlanetModel.java      | 120 ++++---
 .../lucene/spatial3d/geom/GeoPointTest.java     |  33 ++
 solr/CHANGES.txt                                |   3 +
 .../handler/component/RealTimeGetComponent.java |  13 +-
 .../solr/collection1/conf/schema15.xml          |   1 +
 .../solr/collection1/conf/schema_latest.xml     |  51 ++-
 .../org/apache/solr/search/TestRealTimeGet.java |  49 ++-
 16 files changed, 928 insertions(+), 95 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/9cbaa028/solr/CHANGES.txt
----------------------------------------------------------------------