Erick:

Thanks for your reply. Simply omitting the null fields is an intriguing
idea, and I will test this out.

Why not use the JSON response writer?  Two reasons:  our clients dictate a
particular JSON schema that changes on a query-by-query basis.  The
schemas can be quite complex.  Also, we roll our responses as a JAXB DTO
so that our web service can supply responses in either JSON or XML.  I
think either requirement means having to do some "manual" post-processing
of the Solrj responses, right?

Thanks,

David

On 8/29/12 6:15 PM, "Erick Erickson" <erickerick...@gmail.com> wrote:

>If I'm reading this right, you're kind of stuck. Solr/DIH don't have any
>way to reach out to your mapping file and "do the right thing"....
>
>A couple of things come to mind.
>Use a Transformer in DIH to simply remove the field from the document
>you're indexing. Then the absence of the field in the result set is NULL,
>and 0 is 0. You could also do this in SolrJ.....
>
>And I have to ask why you transform output into JSON when you could
>use the JSON response writer.....
>
>Best
>Erick
>
>On Mon, Aug 27, 2012 at 6:04 PM, David Martin <dmar...@netflix.com> wrote:
>> Smart Folks:
>>
>> I use JDBC to produce simple XML entities such as this one:
>>
>> <awardtype>
>>   <entity_type>AWARDTYPE</entity_type>
>>   <movie_id>0</movie_id>
>>   <award_id>31</award_id>
>>   <festivalId>1</festivalId>
>>   <id>awardtypes::31:1</id>
>> </awardtype>
>>
>> The XML entities are stored in file and loaded by the
>> FileListEntityProcessor.
>>
>> In this case, the "movie_id" element has a value of zero because the
>>JDBC
>> getString("movie_id") method returned null.  I can search Solr for
>> entities of this type (i.e. query on "entity_type:AWARDTYPE") and get
>>back
>> the appropriate result set.  Then, I want to transform the result set
>>into
>> JSON objects with fields that map to XML elements.
>>
>> Today, I have to teach the JSON mapping that it should convert 0 to
>> JSONObject.NULL on a case-by-case basis -- I actually keep a mapping
>> document around that dictates whether a zero should be handled this way.
>>
>> In some cases though, a zero may be legitimate where null values are
>>also
>> legit.  Sure, I could always change the zero to a less likely integer or
>> such...
>>
>> =======
>> But doesn't Solr and the Data Import Handler have a better way to read a
>> null value from an XML entity during import, AND to represent it in
>>search
>> results?  Do I need a different approach depending on my field's type?
>> =======
>>
>> I apologize if this is an asked and answered question.  None of my web
>> searches turned up an answer.
>>
>> Thanks,
>>
>> David
>>
>

Reply via email to