You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by yo...@apache.org on 2015/08/28 23:24:45 UTC
svn commit: r1698421 - in /lucene/dev/trunk/solr: ./
contrib/velocity/src/java/org/apache/solr/response/
core/src/java/org/apache/solr/client/solrj/embedded/
core/src/java/org/apache/solr/core/
core/src/java/org/apache/solr/handler/component/ core/src/...
Author: yonik
Date: Fri Aug 28 21:24:44 2015
New Revision: 1698421
URL: http://svn.apache.org/r1698421
Log:
SOLR-7957: expand ResultContext to allow for multiple DocLists per response, remove redundant TransformContext
Added:
lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/BasicResultContext.java (with props)
lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/ResultContext.java
- copied, changed from r1697128, lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/ResultContext.java
Removed:
lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/TransformContext.java
lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/TransformerWithContext.java
Modified:
lucene/dev/trunk/solr/CHANGES.txt
lucene/dev/trunk/solr/contrib/velocity/src/java/org/apache/solr/response/PageTool.java
lucene/dev/trunk/solr/core/src/java/org/apache/solr/client/solrj/embedded/EmbeddedSolrServer.java
lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/QuerySenderListener.java
lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/QueryComponent.java
lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/RealTimeGetComponent.java
lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/ResponseLogComponent.java
lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/BinaryResponseWriter.java
lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/CSVResponseWriter.java
lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/DocsStreamer.java
lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/TextResponseWriter.java
lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/BaseEditorialTransformer.java
lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/ChildDocTransformerFactory.java
lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/DocIdAugmenterFactory.java
lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/DocTransformer.java
lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/DocTransformers.java
lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/ElevatedMarkerFactory.java
lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/ExcludedMarkerFactory.java
lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/ExplainAugmenterFactory.java
lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/RawValueTransformerFactory.java
lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/RenameFieldTransformer.java
lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/ScoreAugmenter.java
lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/ValueAugmenterFactory.java
lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/ValueSourceAugmenter.java
lucene/dev/trunk/solr/core/src/test/org/apache/solr/BasicFunctionalityTest.java
lucene/dev/trunk/solr/core/src/test/org/apache/solr/TestGroupingSearch.java
lucene/dev/trunk/solr/core/src/test/org/apache/solr/response/TestCustomDocTransformer.java
lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/TestRangeQuery.java
lucene/dev/trunk/solr/core/src/test/org/apache/solr/update/DocumentBuilderTest.java
Modified: lucene/dev/trunk/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/CHANGES.txt?rev=1698421&r1=1698420&r2=1698421&view=diff
==============================================================================
--- lucene/dev/trunk/solr/CHANGES.txt (original)
+++ lucene/dev/trunk/solr/CHANGES.txt Fri Aug 28 21:24:44 2015
@@ -47,6 +47,12 @@ Upgrading from Solr 5.x
* The deprecated zkCredientialsProvider element in solrcloud section of solr.xml
is now removed. Use the correct spelling (zkCredentialsProvider) instead.
+* SOLR-7957: internal/expert - ResultContext was significantly changed and expanded
+ to allow for multiple full query results (DocLists) per Solr request.
+ TransformContext was rendered redundant and was removed. (yonik)
+
+
+
Detailed Change List
----------------------
Modified: lucene/dev/trunk/solr/contrib/velocity/src/java/org/apache/solr/response/PageTool.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/contrib/velocity/src/java/org/apache/solr/response/PageTool.java?rev=1698421&r1=1698420&r2=1698421&view=diff
==============================================================================
--- lucene/dev/trunk/solr/contrib/velocity/src/java/org/apache/solr/response/PageTool.java (original)
+++ lucene/dev/trunk/solr/contrib/velocity/src/java/org/apache/solr/response/PageTool.java Fri Aug 28 21:24:44 2015
@@ -18,7 +18,6 @@
package org.apache.solr.response;
import org.apache.solr.request.SolrQueryRequest;
-import org.apache.solr.response.SolrQueryResponse;
import org.apache.solr.search.DocList;
import org.apache.solr.search.DocSlice;
import org.apache.solr.common.SolrDocumentList;
@@ -50,7 +49,7 @@ public class PageTool {
results_found = doc_slice.matches();
start = doc_slice.offset();
} else if(docs instanceof ResultContext) {
- DocList dl = ((ResultContext) docs).docs;
+ DocList dl = ((ResultContext) docs).getDocList();
results_found = dl.matches();
start = dl.offset();
} else if(docs instanceof SolrDocumentList) {
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/client/solrj/embedded/EmbeddedSolrServer.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/client/solrj/embedded/EmbeddedSolrServer.java?rev=1698421&r1=1698420&r2=1698421&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/client/solrj/embedded/EmbeddedSolrServer.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/client/solrj/embedded/EmbeddedSolrServer.java Fri Aug 28 21:24:44 2015
@@ -189,9 +189,9 @@ public class EmbeddedSolrServer extends
public void writeResults(ResultContext ctx, JavaBinCodec codec) throws IOException {
// write an empty list...
SolrDocumentList docs = new SolrDocumentList();
- docs.setNumFound(ctx.docs.matches());
- docs.setStart(ctx.docs.offset());
- docs.setMaxScore(ctx.docs.maxScore());
+ docs.setNumFound(ctx.getDocList().matches());
+ docs.setStart(ctx.getDocList().offset());
+ docs.setMaxScore(ctx.getDocList().maxScore());
codec.writeSolrDocumentList(docs);
// This will transform
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/QuerySenderListener.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/QuerySenderListener.java?rev=1698421&r1=1698420&r2=1698421&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/QuerySenderListener.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/QuerySenderListener.java Fri Aug 28 21:24:44 2015
@@ -70,7 +70,7 @@ public class QuerySenderListener extends
for (int i=0; i<values.size(); i++) {
Object o = values.getVal(i);
if (o instanceof ResultContext) {
- o = ((ResultContext)o).docs;
+ o = ((ResultContext)o).getDocList();
}
if (o instanceof DocList) {
DocList docs = (DocList)o;
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/QueryComponent.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/QueryComponent.java?rev=1698421&r1=1698420&r2=1698421&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/QueryComponent.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/QueryComponent.java Fri Aug 28 21:24:44 2015
@@ -36,7 +36,6 @@ import org.apache.lucene.index.IndexRead
import org.apache.lucene.index.LeafReaderContext;
import org.apache.lucene.index.ReaderUtil;
import org.apache.lucene.index.Term;
-import org.apache.lucene.search.BooleanQuery;
import org.apache.lucene.search.FieldComparator;
import org.apache.lucene.search.LeafFieldComparator;
import org.apache.lucene.search.MatchNoDocsQuery;
@@ -66,6 +65,7 @@ import org.apache.solr.common.util.Named
import org.apache.solr.common.util.SimpleOrderedMap;
import org.apache.solr.common.util.StrUtils;
import org.apache.solr.request.SolrQueryRequest;
+import org.apache.solr.response.BasicResultContext;
import org.apache.solr.response.ResultContext;
import org.apache.solr.response.SolrQueryResponse;
import org.apache.solr.schema.FieldType;
@@ -348,9 +348,7 @@ public class QueryComponent extends Sear
}
rb.setResults(res);
- ResultContext ctx = new ResultContext();
- ctx.docs = rb.getResults().docList;
- ctx.query = null; // anything?
+ ResultContext ctx = new BasicResultContext(rb);
rsp.add("response", ctx);
return;
}
@@ -503,9 +501,7 @@ public class QueryComponent extends Sear
rb.setResult(result);
if (grouping.mainResult != null) {
- ResultContext ctx = new ResultContext();
- ctx.docs = grouping.mainResult;
- ctx.query = null; // TODO? add the query?
+ ResultContext ctx = new BasicResultContext(rb, grouping.mainResult);
rsp.add("response", ctx);
rsp.getToLog().add("hits", grouping.mainResult.matches());
} else if (!grouping.getCommands().isEmpty()) { // Can never be empty since grouping.execute() checks for this.
@@ -522,9 +518,7 @@ public class QueryComponent extends Sear
searcher.search(result, cmd);
rb.setResult(result);
- ResultContext ctx = new ResultContext();
- ctx.docs = rb.getResults().docList;
- ctx.query = rb.getQuery();
+ ResultContext ctx = new BasicResultContext(rb);
rsp.add("response", ctx);
rsp.getToLog().add("hits", rb.getResults().docList.matches());
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/RealTimeGetComponent.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/RealTimeGetComponent.java?rev=1698421&r1=1698420&r2=1698421&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/RealTimeGetComponent.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/RealTimeGetComponent.java Fri Aug 28 21:24:44 2015
@@ -50,9 +50,10 @@ import org.apache.solr.common.util.Named
import org.apache.solr.common.util.StrUtils;
import org.apache.solr.core.SolrCore;
import org.apache.solr.request.SolrQueryRequest;
+import org.apache.solr.response.BasicResultContext;
+import org.apache.solr.response.ResultContext;
import org.apache.solr.response.SolrQueryResponse;
import org.apache.solr.response.transform.DocTransformer;
-import org.apache.solr.response.transform.TransformContext;
import org.apache.solr.schema.FieldType;
import org.apache.solr.schema.IndexSchema;
import org.apache.solr.schema.SchemaField;
@@ -153,8 +154,7 @@ public class RealTimeGetComponent extend
DocTransformer transformer = rsp.getReturnFields().getTransformer();
if (transformer != null) {
- TransformContext context = new TransformContext();
- context.req = req;
+ ResultContext context = new BasicResultContext(null, rsp.getReturnFields(), null, null, req);
transformer.setContext(context);
}
try {
@@ -174,7 +174,7 @@ public class RealTimeGetComponent extend
case UpdateLog.ADD:
SolrDocument doc = toSolrDoc((SolrInputDocument)entry.get(entry.size()-1), core.getLatestSchema());
if(transformer!=null) {
- transformer.transform(doc, -1); // unknown docID
+ transformer.transform(doc, -1, 0); // unknown docID
}
docList.add(doc);
break;
@@ -200,7 +200,7 @@ public class RealTimeGetComponent extend
StoredDocument luceneDocument = searcher.doc(docid, rsp.getReturnFields().getLuceneFieldNames());
SolrDocument doc = toSolrDoc(luceneDocument, core.getLatestSchema());
if( transformer != null ) {
- transformer.transform(doc, docid);
+ transformer.transform(doc, docid, 0);
}
docList.add(doc);
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/ResponseLogComponent.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/ResponseLogComponent.java?rev=1698421&r1=1698420&r2=1698421&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/ResponseLogComponent.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/ResponseLogComponent.java Fri Aug 28 21:24:44 2015
@@ -71,11 +71,12 @@ public class ResponseLogComponent extend
if (schema.getUniqueKeyField() == null) return;
ResultContext rc = (ResultContext) rb.rsp.getValues().get("response");
-
- if (rc.docs.hasScores()) {
- processScores(rb, rc.docs, schema, searcher);
+
+ DocList docs = rc.getDocList();
+ if (docs.hasScores()) {
+ processScores(rb, docs, schema, searcher);
} else {
- processIds(rb, rc.docs, schema, searcher);
+ processIds(rb, docs, schema, searcher);
}
}
Added: lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/BasicResultContext.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/BasicResultContext.java?rev=1698421&view=auto
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/BasicResultContext.java (added)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/BasicResultContext.java Fri Aug 28 21:24:44 2015
@@ -0,0 +1,76 @@
+package org.apache.solr.response;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.apache.lucene.search.Query;
+import org.apache.solr.handler.component.ResponseBuilder;
+import org.apache.solr.request.SolrQueryRequest;
+import org.apache.solr.search.DocList;
+import org.apache.solr.search.ReturnFields;
+import org.apache.solr.search.SolrIndexSearcher;
+
+public class BasicResultContext extends ResultContext {
+ private DocList docList;
+ private ReturnFields returnFields;
+ private SolrIndexSearcher searcher;
+ private Query query;
+ private SolrQueryRequest req;
+
+ public BasicResultContext(DocList docList, ReturnFields returnFields, SolrIndexSearcher searcher, Query query, SolrQueryRequest req) {
+ this.docList = docList;
+ this.returnFields = returnFields;
+ this.searcher = searcher;
+ this.query = query;
+ this.req = req;
+ }
+
+ public BasicResultContext(ResponseBuilder rb) {
+ this(rb.getResults().docList, rb.rsp.getReturnFields(), null, rb.getQuery(), rb.req);
+ }
+
+ public BasicResultContext(ResponseBuilder rb, DocList docList) {
+ this(docList, rb.rsp.getReturnFields(), null, rb.getQuery(), rb.req);
+ }
+
+ @Override
+ public DocList getDocList() {
+ return docList;
+ }
+
+ @Override
+ public ReturnFields getReturnFields() {
+ return returnFields;
+ }
+
+ @Override
+ public SolrIndexSearcher getSearcher() {
+ if (searcher != null) return searcher;
+ if (req != null) return req.getSearcher();
+ return null;
+ }
+
+ @Override
+ public Query getQuery() {
+ return query;
+ }
+
+ @Override
+ public SolrQueryRequest getRequest() {
+ return req;
+ }
+}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/BinaryResponseWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/BinaryResponseWriter.java?rev=1698421&r1=1698420&r2=1698421&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/BinaryResponseWriter.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/BinaryResponseWriter.java Fri Aug 28 21:24:44 2015
@@ -23,11 +23,10 @@ import java.io.InputStream;
import java.io.OutputStream;
import java.io.Writer;
import java.util.ArrayList;
+import java.util.Iterator;
import java.util.List;
import org.apache.lucene.index.StorableField;
-import org.apache.lucene.index.StoredDocument;
-import org.apache.lucene.index.IndexableField;
import org.apache.solr.client.solrj.impl.BinaryResponseParser;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.params.CommonParams;
@@ -39,7 +38,6 @@ import org.apache.solr.schema.SchemaFiel
import org.apache.solr.search.DocList;
import org.apache.solr.search.ReturnFields;
import org.apache.solr.search.SolrIndexSearcher;
-import org.apache.solr.search.SolrReturnFields;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -73,7 +71,7 @@ public class BinaryResponseWriter implem
public static class Resolver implements JavaBinCodec.ObjectResolver , JavaBinCodec.WritableDocFields {
protected final SolrQueryRequest solrQueryRequest;
protected IndexSchema schema;
- protected SolrIndexSearcher searcher;
+ protected SolrIndexSearcher searcher; // TODO - this is never set? always null?
protected final ReturnFields returnFields;
public Resolver(SolrQueryRequest req, ReturnFields returnFields) {
@@ -88,8 +86,7 @@ public class BinaryResponseWriter implem
return null; // null means we completely handled it
}
if (o instanceof DocList) {
- ResultContext ctx = new ResultContext();
- ctx.docs = (DocList) o;
+ ResultContext ctx = new BasicResultContext((DocList)o, returnFields, null, null, solrQueryRequest);
writeResults(ctx, codec);
return null; // null means we completely handled it
}
@@ -118,8 +115,8 @@ public class BinaryResponseWriter implem
}
protected void writeResultsBody( ResultContext res, JavaBinCodec codec ) throws IOException {
- codec.writeTag(JavaBinCodec.ARR, res.docs.size());
- DocsStreamer docStreamer = new DocsStreamer(res.docs,res.query, solrQueryRequest, returnFields);
+ codec.writeTag(JavaBinCodec.ARR, res.getDocList().size());
+ Iterator<SolrDocument> docStreamer = res.getProcessedDocuments();
while (docStreamer.hasNext()) {
SolrDocument doc = docStreamer.next();
codec.writeSolrDocument(doc);
@@ -128,14 +125,13 @@ public class BinaryResponseWriter implem
public void writeResults(ResultContext ctx, JavaBinCodec codec) throws IOException {
codec.writeTag(JavaBinCodec.SOLRDOCLST);
- boolean wantsScores = returnFields.wantsScore() && ctx.docs.hasScores();
List l = new ArrayList(3);
- l.add((long) ctx.docs.matches());
- l.add((long) ctx.docs.offset());
+ l.add((long) ctx.getDocList().matches());
+ l.add((long) ctx.getDocList().offset());
Float maxScore = null;
- if (wantsScores) {
- maxScore = ctx.docs.maxScore();
+ if (ctx.wantsScores()) {
+ maxScore = ctx.getDocList().maxScore();
}
l.add(maxScore);
codec.writeArray(l);
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/CSVResponseWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/CSVResponseWriter.java?rev=1698421&r1=1698420&r2=1698421&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/CSVResponseWriter.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/CSVResponseWriter.java Fri Aug 28 21:24:44 2015
@@ -340,13 +340,13 @@ class CSVWriter extends TextResponseWrit
printer.println();
}
- if (responseObj instanceof ResultContext ) {
- writeDocuments(null, (ResultContext)responseObj, returnFields );
+ if (responseObj instanceof ResultContext) {
+ writeDocuments(null, (ResultContext)responseObj );
}
else if (responseObj instanceof DocList) {
- ResultContext ctx = new ResultContext();
- ctx.docs = (DocList)responseObj;
- writeDocuments(null, ctx, returnFields );
+
+ ResultContext ctx = new BasicResultContext((DocList)responseObj, returnFields, null, null, req);
+ writeDocuments(null, ctx );
} else if (responseObj instanceof SolrDocumentList) {
writeSolrDocumentList(null, (SolrDocumentList)responseObj, returnFields );
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/DocsStreamer.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/DocsStreamer.java?rev=1698421&r1=1698420&r2=1698421&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/DocsStreamer.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/DocsStreamer.java Fri Aug 28 21:24:44 2015
@@ -24,17 +24,12 @@ import java.util.Iterator;
import java.util.List;
import java.util.Set;
-import org.apache.lucene.document.Document;
-import org.apache.lucene.index.IndexableField;
import org.apache.lucene.index.StorableField;
import org.apache.lucene.index.StoredDocument;
-import org.apache.lucene.search.Query;
import org.apache.lucene.util.BytesRef;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrException;
-import org.apache.solr.request.SolrQueryRequest;
import org.apache.solr.response.transform.DocTransformer;
-import org.apache.solr.response.transform.TransformContext;
import org.apache.solr.schema.BinaryField;
import org.apache.solr.schema.BoolField;
import org.apache.solr.schema.FieldType;
@@ -50,8 +45,6 @@ import org.apache.solr.schema.TrieIntFie
import org.apache.solr.schema.TrieLongField;
import org.apache.solr.search.DocIterator;
import org.apache.solr.search.DocList;
-import org.apache.solr.search.ReturnFields;
-import org.apache.solr.search.SolrIndexSearcher;
import org.apache.solr.search.SolrReturnFields;
/**
@@ -59,38 +52,28 @@ import org.apache.solr.search.SolrReturn
*/
public class DocsStreamer implements Iterator<SolrDocument> {
public static final Set<Class> KNOWN_TYPES = new HashSet<>();
+
+ private org.apache.solr.response.ResultContext rctx;
private final DocList docs;
- private SolrIndexSearcher searcher;
- private final IndexSchema schema;
private DocTransformer transformer;
private DocIterator docIterator;
+
private boolean onlyPseudoFields;
private Set<String> fnames;
- private TransformContext context;
private int idx = -1;
- public DocsStreamer(DocList docList, Query query, SolrQueryRequest req, ReturnFields returnFields) {
- this.docs = docList;
- this.schema = req.getSchema();
- searcher = req.getSearcher();
- transformer = returnFields.getTransformer();
- docIterator = docList.iterator();
- context = new TransformContext();
- context.query = query;
- context.wantsScores = returnFields.wantsScore() && docList.hasScores();
- context.req = req;
- context.searcher = searcher;
- context.iterator = docIterator;
- fnames = returnFields.getLuceneFieldNames();
- onlyPseudoFields = (fnames == null && !returnFields.wantsAllFields() && !returnFields.hasPatternMatching())
+ public DocsStreamer(ResultContext rctx) {
+ this.rctx = rctx;
+ this.docs = rctx.getDocList();
+ transformer = rctx.getReturnFields().getTransformer();
+ docIterator = this.docs.iterator();
+ fnames = rctx.getReturnFields().getLuceneFieldNames();
+ onlyPseudoFields = (fnames == null && !rctx.getReturnFields().wantsAllFields() && !rctx.getReturnFields().hasPatternMatching())
|| (fnames != null && fnames.size() == 1 && SolrReturnFields.SCORE.equals(fnames.iterator().next()));
- if (transformer != null) transformer.setContext(context);
+ if (transformer != null) transformer.setContext(rctx);
}
- public boolean hasScores() {
- return context.wantsScores;
- }
public int currentIndex() {
return idx;
@@ -110,16 +93,17 @@ public class DocsStreamer implements Ite
sdoc = new SolrDocument();
} else {
try {
- StoredDocument doc = searcher.doc(id, fnames);
- sdoc = getDoc(doc, schema);
+ StoredDocument doc = rctx.getSearcher().doc(id, fnames);
+ sdoc = getDoc(doc, rctx.getSearcher().getSchema()); // make sure to use the schema from the searcher and not the request (cross-core)
} catch (IOException e) {
throw new SolrException(SolrException.ErrorCode.SERVER_ERROR, "Error reading document with docId " + id, e);
}
}
if (transformer != null) {
+ boolean doScore = rctx.wantsScores();
try {
- transformer.transform(sdoc, id);
+ transformer.transform(sdoc, id, doScore ? docIterator.score() : 0);
} catch (IOException e) {
throw new SolrException(SolrException.ErrorCode.SERVER_ERROR, "Error applying transformer", e);
}
Copied: lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/ResultContext.java (from r1697128, lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/ResultContext.java)
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/ResultContext.java?p2=lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/ResultContext.java&p1=lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/ResultContext.java&r1=1697128&r2=1698421&rev=1698421&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/ResultContext.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/ResultContext.java Fri Aug 28 21:24:44 2015
@@ -17,15 +17,45 @@
package org.apache.solr.response;
+import java.util.Iterator;
+
import org.apache.lucene.search.Query;
+import org.apache.solr.common.SolrDocument;
+import org.apache.solr.handler.component.ResponseBuilder;
+import org.apache.solr.request.SolrQueryRequest;
import org.apache.solr.search.DocList;
+import org.apache.solr.search.ReturnFields;
+import org.apache.solr.search.SolrIndexSearcher;
/**
* A class to hold the QueryResult and the Query
*
*
*/
-public class ResultContext {
- public Query query;
- public DocList docs;
+public abstract class ResultContext {
+
+ public abstract DocList getDocList();
+
+ public abstract ReturnFields getReturnFields();
+
+ public abstract SolrIndexSearcher getSearcher();
+
+ public abstract Query getQuery();
+
+ // TODO: any reason to allow for retrievial of any filters as well?
+
+ /** Note: do not use the request to get the searcher! A cross-core request may have a different
+ * searcher (for the other core) than the original request.
+ */
+ public abstract SolrQueryRequest getRequest();
+
+ public boolean wantsScores() {
+ return getReturnFields().wantsScore() && getDocList().hasScores();
+ }
+
+ public Iterator<SolrDocument> getProcessedDocuments() {
+ return new DocsStreamer(this);
+ }
}
+
+
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/TextResponseWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/TextResponseWriter.java?rev=1698421&r1=1698420&r2=1698421&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/TextResponseWriter.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/TextResponseWriter.java Fri Aug 28 21:24:44 2015
@@ -144,12 +144,11 @@ public abstract class TextResponseWriter
writeSolrDocument(name, (SolrDocument)val,returnFields, 0);
} else if (val instanceof ResultContext) {
// requires access to IndexReader
- writeDocuments(name, (ResultContext)val, returnFields);
+ writeDocuments(name, (ResultContext)val);
} else if (val instanceof DocList) {
// Should not happen normally
- ResultContext ctx = new ResultContext();
- ctx.docs = (DocList)val;
- writeDocuments(name, ctx, returnFields);
+ ResultContext ctx = new BasicResultContext((DocList)val, returnFields, null, null, req);
+ writeDocuments(name, ctx);
// }
// else if (val instanceof DocSet) {
// how do we know what fields to read?
@@ -216,29 +215,31 @@ public abstract class TextResponseWriter
public abstract void writeStartDocumentList(String name, long start, int size, long numFound, Float maxScore) throws IOException;
- public abstract void writeSolrDocument(String name, SolrDocument doc, ReturnFields returnFields, int idx) throws IOException;
+ public abstract void writeSolrDocument(String name, SolrDocument doc, ReturnFields fields, int idx) throws IOException;
public abstract void writeEndDocumentList() throws IOException;
// Assume each SolrDocument is already transformed
- public final void writeSolrDocumentList(String name, SolrDocumentList docs, ReturnFields returnFields) throws IOException
+ public final void writeSolrDocumentList(String name, SolrDocumentList docs, ReturnFields fields) throws IOException
{
writeStartDocumentList(name, docs.getStart(), docs.size(), docs.getNumFound(), docs.getMaxScore() );
for( int i=0; i<docs.size(); i++ ) {
- writeSolrDocument( null, docs.get(i), returnFields, i );
+ writeSolrDocument( null, docs.get(i), fields, i );
}
writeEndDocumentList();
}
- public final void writeDocuments(String name, ResultContext res, ReturnFields fields ) throws IOException {
- DocList ids = res.docs;
- DocsStreamer docsStreamer = new DocsStreamer(res.docs,res.query, req, fields);
+ public final void writeDocuments(String name, ResultContext res) throws IOException {
+ DocList ids = res.getDocList();
+ Iterator<SolrDocument> docsStreamer = res.getProcessedDocuments();
writeStartDocumentList(name, ids.offset(), ids.size(), ids.matches(),
- docsStreamer.hasScores() ? new Float(ids.maxScore()) : null);
+ res.wantsScores() ? new Float(ids.maxScore()) : null);
+ int idx = 0;
while (docsStreamer.hasNext()) {
- writeSolrDocument(null, docsStreamer.next(), returnFields, docsStreamer.currentIndex());
+ writeSolrDocument(null, docsStreamer.next(), res.getReturnFields(), idx);
+ idx++;
}
writeEndDocumentList();
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/BaseEditorialTransformer.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/BaseEditorialTransformer.java?rev=1698421&r1=1698420&r2=1698421&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/BaseEditorialTransformer.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/BaseEditorialTransformer.java Fri Aug 28 21:24:44 2015
@@ -47,7 +47,7 @@ public abstract class BaseEditorialTrans
}
@Override
- public void transform(SolrDocument doc, int docid) {
+ public void transform(SolrDocument doc, int docid, float score) {
//this only gets added if QueryElevationParams.MARK_EXCLUDED is true
Set<String> ids = getIdSet();
if (ids != null && ids.isEmpty() == false) {
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/ChildDocTransformerFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/ChildDocTransformerFactory.java?rev=1698421&r1=1698420&r2=1698421&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/ChildDocTransformerFactory.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/ChildDocTransformerFactory.java Fri Aug 28 21:24:44 2015
@@ -96,7 +96,7 @@ public class ChildDocTransformerFactory
}
}
-class ChildDocTransformer extends TransformerWithContext {
+class ChildDocTransformer extends DocTransformer {
private final String name;
private final SchemaField idField;
private final IndexSchema schema;
@@ -121,7 +121,7 @@ class ChildDocTransformer extends Transf
}
@Override
- public void transform(SolrDocument doc, int docid) {
+ public void transform(SolrDocument doc, int docid, float score) {
FieldType idFt = idField.getType();
Object parentIdField = doc.getFirstValue(idField.getName());
@@ -133,12 +133,12 @@ class ChildDocTransformer extends Transf
try {
Query parentQuery = idFt.getFieldQuery(null, idField, parentIdExt);
Query query = new ToChildBlockJoinQuery(parentQuery, parentsFilter);
- DocList children = context.searcher.getDocList(query, childFilterQuery, new Sort(), 0, limit);
+ DocList children = context.getSearcher().getDocList(query, childFilterQuery, new Sort(), 0, limit);
if(children.matches() > 0) {
DocIterator i = children.iterator();
while(i.hasNext()) {
Integer childDocNum = i.next();
- StoredDocument childDoc = context.searcher.doc(childDocNum);
+ StoredDocument childDoc = context.getSearcher().doc(childDocNum);
SolrDocument solrChildDoc = DocsStreamer.getDoc(childDoc, schema);
// TODO: future enhancement...
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/DocIdAugmenterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/DocIdAugmenterFactory.java?rev=1698421&r1=1698420&r2=1698421&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/DocIdAugmenterFactory.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/DocIdAugmenterFactory.java Fri Aug 28 21:24:44 2015
@@ -48,7 +48,7 @@ class DocIdAugmenter extends DocTransfor
}
@Override
- public void transform(SolrDocument doc, int docid) {
+ public void transform(SolrDocument doc, int docid, float score) {
if( docid >= 0 ) {
doc.setField( name, docid );
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/DocTransformer.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/DocTransformer.java?rev=1698421&r1=1698420&r2=1698421&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/DocTransformer.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/DocTransformer.java Fri Aug 28 21:24:44 2015
@@ -18,10 +18,10 @@
package org.apache.solr.response.transform;
import java.io.IOException;
-import java.util.Set;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.response.QueryResponseWriter;
+import org.apache.solr.response.ResultContext;
import org.apache.solr.search.SolrIndexSearcher;
/**
@@ -35,7 +35,7 @@ import org.apache.solr.search.SolrIndexS
*
*/
public abstract class DocTransformer {
- protected TransformContext context;
+ protected ResultContext context;
/**
*
* @return The name of the transformer
@@ -44,10 +44,9 @@ public abstract class DocTransformer {
/**
* This is called before transform and sets
- * @param context The {@link org.apache.solr.response.transform.TransformContext} stores information about the current state of things in Solr that may be
- * useful for doing transformations.
+ * @param context The {@link ResultContext} stores information about how the documents were produced.
*/
- public void setContext( TransformContext context ) {
+ public void setContext( ResultContext context ) {
this.context = context;
}
@@ -58,9 +57,10 @@ public abstract class DocTransformer {
*
* @param doc The document to alter
* @param docid The Lucene internal doc id
+ * @param score
* @throws IOException If there is a low-level I/O error.
*/
- public abstract void transform(SolrDocument doc, int docid) throws IOException;
+ public abstract void transform(SolrDocument doc, int docid, float score) throws IOException;
/**
* When a transformer needs access to fields that are not automaticaly derived from the
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/DocTransformers.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/DocTransformers.java?rev=1698421&r1=1698420&r2=1698421&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/DocTransformers.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/DocTransformers.java Fri Aug 28 21:24:44 2015
@@ -23,7 +23,7 @@ import java.util.Iterator;
import java.util.List;
import org.apache.solr.common.SolrDocument;
-import org.apache.solr.request.SolrQueryRequest;
+import org.apache.solr.response.ResultContext;
/**
* Transform a document before it gets sent out
@@ -65,16 +65,16 @@ public class DocTransformers extends Doc
}
@Override
- public void setContext( TransformContext context ) {
+ public void setContext( ResultContext context ) {
for( DocTransformer a : children ) {
a.setContext( context );
}
}
@Override
- public void transform(SolrDocument doc, int docid) throws IOException {
+ public void transform(SolrDocument doc, int docid, float score) throws IOException {
for( DocTransformer a : children ) {
- a.transform( doc, docid);
+ a.transform( doc, docid, score);
}
}
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/ElevatedMarkerFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/ElevatedMarkerFactory.java?rev=1698421&r1=1698420&r2=1698421&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/ElevatedMarkerFactory.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/ElevatedMarkerFactory.java Fri Aug 28 21:24:44 2015
@@ -48,7 +48,7 @@ class MarkTransformer extends BaseEditor
@Override
protected Set<String> getIdSet() {
- return (Set<String>) context.req.getContext().get("BOOSTED");
+ return (Set<String>) context.getRequest().getContext().get("BOOSTED");
}
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/ExcludedMarkerFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/ExcludedMarkerFactory.java?rev=1698421&r1=1698420&r2=1698421&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/ExcludedMarkerFactory.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/ExcludedMarkerFactory.java Fri Aug 28 21:24:44 2015
@@ -51,7 +51,7 @@ class ExcludedTransformer extends BaseEd
@Override
protected Set<String> getIdSet() {
- return (Set<String>)context.req.getContext().get(QueryElevationComponent.EXCLUDED);
+ return (Set<String>)context.getRequest().getContext().get(QueryElevationComponent.EXCLUDED);
}
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/ExplainAugmenterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/ExplainAugmenterFactory.java?rev=1698421&r1=1698420&r2=1698421&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/ExplainAugmenterFactory.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/ExplainAugmenterFactory.java Fri Aug 28 21:24:44 2015
@@ -87,7 +87,7 @@ public class ExplainAugmenterFactory ext
}
@Override
- public void transform(SolrDocument doc, int docid) {
+ public void transform(SolrDocument doc, int docid, float score) {
if( context != null && context.getQuery() != null ) {
try {
Explanation exp = context.getSearcher().explain(context.getQuery(), docid);
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/RawValueTransformerFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/RawValueTransformerFactory.java?rev=1698421&r1=1698420&r2=1698421&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/RawValueTransformerFactory.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/RawValueTransformerFactory.java Fri Aug 28 21:24:44 2015
@@ -20,7 +20,6 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
-import org.apache.lucene.index.IndexableField;
import org.apache.lucene.index.StorableField;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.params.CommonParams;
@@ -108,7 +107,7 @@ public class RawValueTransformerFactory
}
@Override
- public void transform(SolrDocument doc, int docid) {
+ public void transform(SolrDocument doc, int docid, float score) {
Object val = doc.remove(field);
if(val==null) {
return;
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/RenameFieldTransformer.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/RenameFieldTransformer.java?rev=1698421&r1=1698420&r2=1698421&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/RenameFieldTransformer.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/RenameFieldTransformer.java Fri Aug 28 21:24:44 2015
@@ -17,8 +17,6 @@
package org.apache.solr.response.transform;
import org.apache.solr.common.SolrDocument;
-import org.apache.solr.common.util.NamedList;
-import org.apache.solr.request.SolrQueryRequest;
/**
* Return a field with a name that is different that what is indexed
@@ -46,7 +44,7 @@ public class RenameFieldTransformer exte
}
@Override
- public void transform(SolrDocument doc, int docid) {
+ public void transform(SolrDocument doc, int docid, float score) {
Object v = (copy)?doc.get(from) : doc.remove( from );
if( v != null ) {
doc.setField(to, v);
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/ScoreAugmenter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/ScoreAugmenter.java?rev=1698421&r1=1698420&r2=1698421&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/ScoreAugmenter.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/ScoreAugmenter.java Fri Aug 28 21:24:44 2015
@@ -17,7 +17,6 @@
package org.apache.solr.response.transform;
import org.apache.solr.common.SolrDocument;
-import org.apache.solr.request.SolrQueryRequest;
/**
* Simple Augmenter that adds the score
@@ -40,11 +39,9 @@ public class ScoreAugmenter extends DocT
}
@Override
- public void transform(SolrDocument doc, int docid) {
+ public void transform(SolrDocument doc, int docid, float score) {
if( context != null && context.wantsScores() ) {
- if( context.getDocIterator() != null ) {
- doc.setField( name, context.getDocIterator().score() );
- }
+ doc.setField( name, score );
}
}
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/ValueAugmenterFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/ValueAugmenterFactory.java?rev=1698421&r1=1698420&r2=1698421&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/ValueAugmenterFactory.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/ValueAugmenterFactory.java Fri Aug 28 21:24:44 2015
@@ -96,7 +96,7 @@ class ValueAugmenter extends DocTransfor
}
@Override
- public void transform(SolrDocument doc, int docid) {
+ public void transform(SolrDocument doc, int docid, float score) {
doc.setField( name, value );
}
}
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/ValueSourceAugmenter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/ValueSourceAugmenter.java?rev=1698421&r1=1698420&r2=1698421&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/ValueSourceAugmenter.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/response/transform/ValueSourceAugmenter.java Fri Aug 28 21:24:44 2015
@@ -27,6 +27,7 @@ import org.apache.lucene.queries.functio
import org.apache.lucene.queries.function.ValueSource;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrException;
+import org.apache.solr.response.ResultContext;
import org.apache.solr.search.QParser;
import org.apache.solr.search.SolrIndexSearcher;
@@ -60,7 +61,8 @@ public class ValueSourceAugmenter extend
}
@Override
- public void setContext( TransformContext context ) {
+ public void setContext( ResultContext context ) {
+ super.setContext(context);
try {
IndexReader reader = qparser.getReq().getSearcher().getIndexReader();
readerContexts = reader.leaves();
@@ -82,7 +84,7 @@ public class ValueSourceAugmenter extend
@Override
- public void transform(SolrDocument doc, int docid) {
+ public void transform(SolrDocument doc, int docid, float score) {
// This is only good for random-access functions
try {
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/BasicFunctionalityTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/BasicFunctionalityTest.java?rev=1698421&r1=1698420&r2=1698421&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/BasicFunctionalityTest.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/BasicFunctionalityTest.java Fri Aug 28 21:24:44 2015
@@ -710,7 +710,7 @@ public class BasicFunctionalityTest exte
SolrQueryResponse rsp = new SolrQueryResponse();
core.execute(core.getRequestHandler(req.getParams().get(CommonParams.QT)), req, rsp);
- DocList dl = ((ResultContext) rsp.getValues().get("response")).docs;
+ DocList dl = ((ResultContext) rsp.getValues().get("response")).getDocList();
StoredDocument d = req.getSearcher().doc(dl.iterator().nextDoc());
// ensure field in fl is not lazy
assertFalse( ((Field) d.getField("test_hlt")).getClass().getSimpleName().equals("LazyField"));
@@ -735,7 +735,7 @@ public class BasicFunctionalityTest exte
SolrQueryResponse rsp = new SolrQueryResponse();
core.execute(core.getRequestHandler(req.getParams().get(CommonParams.QT)), req, rsp);
- DocList dl = ((ResultContext) rsp.getValues().get("response")).docs;
+ DocList dl = ((ResultContext) rsp.getValues().get("response")).getDocList();
DocIterator di = dl.iterator();
StoredDocument d1 = req.getSearcher().doc(di.nextDoc());
StorableField[] values1 = null;
@@ -757,7 +757,7 @@ public class BasicFunctionalityTest exte
rsp = new SolrQueryResponse();
core.execute(core.getRequestHandler(req.getParams().get(CommonParams.QT)), req, rsp);
- dl = ((ResultContext) rsp.getValues().get("response")).docs;
+ dl = ((ResultContext) rsp.getValues().get("response")).getDocList();
di = dl.iterator();
StoredDocument d2 = req.getSearcher().doc(di.nextDoc());
// ensure same doc, same lazy field now
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/TestGroupingSearch.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/TestGroupingSearch.java?rev=1698421&r1=1698420&r2=1698421&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/TestGroupingSearch.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/TestGroupingSearch.java Fri Aug 28 21:24:44 2015
@@ -264,7 +264,7 @@ public class TestGroupingSearch extends
SolrRequestInfo.clearRequestInfo();
}
- assertEquals(6, ((ResultContext) response.getValues().get("response")).docs.matches());
+ assertEquals(6, ((ResultContext) response.getValues().get("response")).getDocList().matches());
new BinaryResponseParser().processResponse(new ByteArrayInputStream(out.toByteArray()), "");
out.close();
}
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/response/TestCustomDocTransformer.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/response/TestCustomDocTransformer.java?rev=1698421&r1=1698420&r2=1698421&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/response/TestCustomDocTransformer.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/response/TestCustomDocTransformer.java Fri Aug 28 21:24:44 2015
@@ -19,8 +19,6 @@ package org.apache.solr.response;
import java.io.IOException;
-import org.apache.lucene.document.StoredField;
-import org.apache.lucene.index.IndexableField;
import org.apache.lucene.index.StorableField;
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.common.SolrDocument;
@@ -108,7 +106,7 @@ public class TestCustomDocTransformer ex
* This transformer simply concatinates the values of multipe fields
*/
@Override
- public void transform(SolrDocument doc, int docid) throws IOException {
+ public void transform(SolrDocument doc, int docid, float score) throws IOException {
str.setLength(0);
for(String s : extra) {
String v = getAsString(s, doc);
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/TestRangeQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/TestRangeQuery.java?rev=1698421&r1=1698420&r2=1698421&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/TestRangeQuery.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/search/TestRangeQuery.java Fri Aug 28 21:24:44 2015
@@ -259,8 +259,8 @@ public class TestRangeQuery extends Solr
SolrQueryResponse qr = h.queryAndResponse(handler, req);
if (last != null) {
// we only test if the same docs matched since some queries will include factors like idf, etc.
- DocList rA = ((ResultContext)qr.getValues().get("response")).docs;
- DocList rB = ((ResultContext)last.getValues().get("response")).docs;
+ DocList rA = ((ResultContext)qr.getValues().get("response")).getDocList();
+ DocList rB = ((ResultContext)last.getValues().get("response")).getDocList();
sameDocs( rA, rB );
}
req.close();
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/update/DocumentBuilderTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/update/DocumentBuilderTest.java?rev=1698421&r1=1698420&r2=1698421&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/update/DocumentBuilderTest.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/update/DocumentBuilderTest.java Fri Aug 28 21:24:44 2015
@@ -33,6 +33,7 @@ import org.apache.solr.common.SolrExcept
import org.apache.solr.common.SolrInputDocument;
import org.apache.solr.common.SolrInputField;
import org.apache.solr.core.SolrCore;
+import org.apache.solr.response.ResultContext;
import org.apache.solr.search.SolrIndexSearcher;
import org.apache.solr.search.DocList;
import org.apache.solr.schema.CopyField;
@@ -40,7 +41,6 @@ import org.apache.solr.schema.FieldType;
import org.apache.solr.schema.IndexSchema;
import org.apache.solr.request.SolrQueryRequest;
import org.apache.solr.response.SolrQueryResponse;
-import org.apache.solr.response.ResultContext;
import org.junit.BeforeClass;
import org.junit.Test;
@@ -345,7 +345,7 @@ public class DocumentBuilderTest extends
SolrQueryResponse rsp = new SolrQueryResponse();
core.execute(core.getRequestHandler(req.getParams().get(CommonParams.QT)), req, rsp);
- DocList dl = ((ResultContext) rsp.getValues().get("response")).docs;
+ DocList dl = ((ResultContext) rsp.getValues().get("response")).getDocList();
assertTrue("can't find the doc we just added", 1 == dl.size());
int docid = dl.iterator().nextDoc();