mirror of https://github.com/apache/lucene.git
SOLR-2970: CSV ResponseWriter returns fields defined as stored=false in schema
git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/trunk@1232918 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
c9361a507d
commit
374f6fc6c1
|
@ -484,6 +484,8 @@ Bug Fixes
|
|||
* SOLR-3042: Fixed Maven Jetty plugin configuration.
|
||||
(David Smiley via Steve Rowe)
|
||||
|
||||
* SOLR-2970: CSV ResponseWriter returns fields defined as stored=false in schema (janhoy)
|
||||
|
||||
Other Changes
|
||||
----------------------
|
||||
* SOLR-2922: Upgrade commons-io and commons-lang to 2.1 and 2.6, respectively. (koji)
|
||||
|
|
|
@ -235,6 +235,7 @@ class CSVWriter extends TextResponseWriter {
|
|||
|
||||
Collection<String> fields = returnFields.getLuceneFieldNames();
|
||||
Object responseObj = rsp.getValues().get("response");
|
||||
boolean returnOnlyStored = false;
|
||||
if (fields==null) {
|
||||
if (responseObj instanceof SolrDocumentList) {
|
||||
// get the list of fields from the SolrDocumentList
|
||||
|
@ -251,6 +252,7 @@ class CSVWriter extends TextResponseWriter {
|
|||
} else {
|
||||
fields.remove("score");
|
||||
}
|
||||
returnOnlyStored = true;
|
||||
}
|
||||
|
||||
CSVSharedBufPrinter csvPrinterMV = new CSVSharedBufPrinter(mvWriter, mvStrategy);
|
||||
|
@ -268,9 +270,9 @@ class CSVWriter extends TextResponseWriter {
|
|||
FieldType ft = new StrField();
|
||||
sf = new SchemaField(field, ft);
|
||||
}
|
||||
|
||||
// if we got the list of fields from the index, only list stored fields
|
||||
if (returnFields==null && sf != null && !sf.stored()) {
|
||||
|
||||
// Return only stored fields, unless an explicit field list is specified
|
||||
if (returnOnlyStored && sf != null && !sf.stored()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
|
@ -36,7 +36,8 @@ public class TestCSVResponseWriter extends SolrTestCaseJ4 {
|
|||
|
||||
public static void createIndex() {
|
||||
assertU(adoc("id","1", "foo_i","-1", "foo_s","hi", "foo_l","12345678987654321", "foo_b","false", "foo_f","1.414","foo_d","-1.0E300","foo_dt","2000-01-02T03:04:05Z"));
|
||||
assertU(adoc("id","2", "v_ss","hi", "v_ss","there", "v2_ss","nice", "v2_ss","output"));
|
||||
assertU(adoc("id","2", "v_ss","hi", "v_ss","there", "v2_ss","nice", "v2_ss","output", "shouldbeunstored","foo"));
|
||||
assertU(adoc("id","3", "shouldbeunstored","foo"));
|
||||
assertU(commit());
|
||||
}
|
||||
|
||||
|
@ -97,6 +98,10 @@ public class TestCSVResponseWriter extends SolrTestCaseJ4 {
|
|||
assertEquals("1,,hi\n2,\"hi,there\",\n"
|
||||
, h.query(req("q","id:[1 TO 2]", "wt","csv", "csv.header","false", "fl","id,v_ss,foo_s")));
|
||||
|
||||
// test SOLR-2970 not returning non-stored fields by default
|
||||
assertEquals("id,foo_b,foo_d,foo_s,foo_f,foo_i,foo_dt,foo_l,v_ss,v2_ss\n"
|
||||
, h.query(req("q","id:3", "wt","csv", "csv.header","true", "fl","*", "rows","0")));
|
||||
|
||||
|
||||
// now test SolrDocumentList
|
||||
SolrDocument d = new SolrDocument();
|
||||
|
@ -119,6 +124,7 @@ public class TestCSVResponseWriter extends SolrTestCaseJ4 {
|
|||
d.addField("v2_ss","nice");
|
||||
d.addField("v2_ss","output");
|
||||
d.addField("score", "89.83");
|
||||
d.addField("shouldbeunstored","foo");
|
||||
|
||||
SolrDocumentList sdl = new SolrDocumentList();
|
||||
sdl.add(d1);
|
||||
|
|
Loading…
Reference in New Issue