Hoss Man created SOLR-12108:
-------------------------------
Summary: raw transformers ([json] and [xml]) drop the field value
if wt is not a match and documentCache is not enabled
Key: SOLR-12108
URL: https://issues.apache.org/jira/browse/SOLR-12108
Project: Solr
Issue Type: Bug
Security Level: Public (Default Security Level. Issues are Public)
Reporter: Hoss Man
discovered this while working on SOLR-11891...
The {{RawValueTransformerFactory}} class is suppose to treat the field value as
a normal string in situations where an instance is limited by the {{wt}} param
(which it is automatically for the default {{[json]}} and {{[xml]}}
transformers.
This is currently implemented by {{RawValueTransformerFactory.create()}}
assuming it can just return "null" if the ResponseWriter in use doesn't match -
but because of how this transformer abuses the "key" to implicitly indicate the
field to be returned (ie: {{my_json_fieldName:[json]}}, it means that nothing
about the resulting {{ReturnFields}} datastructure indicates that the field
({{my_json_fieldName}}) should be returned at all.
Because of the existing sloppy code in SOLR-11891, that means this bug in
ChildDocumentTransformer only impacts current users if the documentCache is
disabled
----
Example steps to reproduce w/techproducts config assuming {{solrconfig.xml}} is
edited to disable documentCache...
{noformat}
$ curl 'http://localhost:8983/solr/techproducts/update?commit=true' -H
'Content-Type: application/json' --data-binary '[
{
"id": "1",
"raw_s":"{\"raw\":\"json\"}" } ]'
{
"responseHeader":{
"status":0,
"QTime":39}}
$ curl 'http://localhost:8983/solr/techproducts/query?wt=json&q=id:1&fl=raw_s'
{
"responseHeader":{
"status":0,
"QTime":2,
"params":{
"q":"id:1",
"fl":"raw_s",
"wt":"json"}},
"response":{"numFound":1,"start":0,"docs":[
{
"raw_s":"{\"raw\":\"json\"}"}]
}}
$ curl
'http://localhost:8983/solr/techproducts/query?wt=json&q=id:1&fl=raw_s:%5Bjson%5D'
{
"responseHeader":{
"status":0,
"QTime":0,
"params":{
"q":"id:1",
"fl":"raw_s:[json]",
"wt":"json"}},
"response":{"numFound":1,"start":0,"docs":[
{
"raw_s":{"raw":"json"}}]
}}
$ curl
'http://localhost:8983/solr/techproducts/query?wt=xml&q=id:1&fl=raw_s:%5Bjson%5D'
<?xml version="1.0" encoding="UTF-8"?>
<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">0</int>
<lst name="params">
<str name="q">id:1</str>
<str name="fl">raw_s:[json]</str>
<str name="wt">xml</str>
</lst>
</lst>
<result name="response" numFound="1" start="0">
<doc></doc>
</result>
</response>
{noformat}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]