lucene-solr-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Yonik Seeley" <yo...@apache.org>
Subject Re: JSONRequestWriter
Date Wed, 05 Mar 2008 19:09:54 GMT
I think the container is the issue (the type of rsp).

Here is the Javadoc for SimpleOrderedMap:
/** <code>SimpleOrderedMap</code> is a {@link NamedList} where access
by key is more
 * important than maintaining order when it comes to representing the
 * held data in other forms, as ResponseWriters normally do.
 * It's normally not a good idea to repeat keys or use null keys, but this
 * is not enforced.  If key uniqueness enforcement is desired, use a
regular {@link Map}.
 * <p>
 * For example, a JSON response writer may choose to write a SimpleOrderedMap
 * as {"foo":10,"bar":20} and may choose to write a NamedList as
 * ["foo",10,"bar",20].  An XML response writer may choose to render both
 * the same way.
 * </p>
 * <p>
 * This class does not provide efficient lookup by key, it's main purpose is
 * to hold data to be serialized.  It aims to minimize overhead and to be
 * efficient at adding new elements.
 * </p>
 */

-Yonik


On Wed, Mar 5, 2008 at 1:56 PM, Doug Steigerwald
<dsteigerwald@mcclatchyinteractive.com> wrote:
> Looks like it's only happening when we use the LocalSolrQueryComponent from localsolr.
>
>  rsp.add("response", sdoclist);
>
>  sdoclist is a SolrDocumentList.  Could that be causing an issue instead of it being
just a DocList?
>
>  Doug
>
>
>
>  Yonik Seeley wrote:
>  > The output you showed is indeed incorrect, but I can't reproduce that
>  > with stock solr.
>  > Here is a example of what I get:
>  >
>  > {
>  >  'responseHeader'=>{
>  >   'status'=>0,
>  >   'QTime'=>16,
>  >   'params'=>{
>  >       'wt'=>'ruby',
>  >       'indent'=>'true',
>  >       'q'=>'*:*',
>  >       'facet'=>'true',
>  >       'highlight'=>'true'}},
>  >  'response'=>{'numFound'=>0,'start'=>0,'docs'=>[]
>  >  },
>  >  'facet_counts'=>{
>  >   'facet_queries'=>{},
>  >   'facet_fields'=>{},
>  >   'facet_dates'=>{}}}
>  >
>  >
>  > -Yonik
>  >
>  > On Wed, Mar 5, 2008 at 12:00 PM, Doug Steigerwald
>  > <dsteigerwald@mcclatchyinteractive.com> wrote:
>  >> Sure.
>  >>
>  >>  The default (json.nl=flat):
>  >>
>  >>  'response',{'numFound'=>41,'start'=>0,............
>  >>
>  >>  Adding json.nl=map makes output correct:
>  >>
>  >>  'response'=>{'numFound'=>41,'start'=>0,............
>  >>
>  >>  This also changes facet output (which was evaluating fine):
>  >>
>  >>  FLAT:
>  >>
>  >>   'facet_counts',{
>  >>    'facet_queries'=>{},
>  >>    'facet_fields'=>{
>  >>         'movies_movie_genre_facet'=>[
>  >>          'Drama',22,
>  >>          'Action/Adventure',11,
>  >>          'Comedy',11,
>  >>          'Suspense/Thriller',11,
>  >>          'SciFi/Fantasy',5,
>  >>          'Animation',4,
>  >>          'Documentary',4,
>  >>          'Family',3,
>  >>          'Horror',3,
>  >>          'Musical',2,
>  >>          'Romance',2,
>  >>          'Concert',1,
>  >>          'War',1]},
>  >>    'facet_dates'=>{}}
>  >>
>  >>  MAP:
>  >>
>  >>   'facet_counts'=>{
>  >>    'facet_queries'=>{},
>  >>    'facet_fields'=>{
>  >>         'movies_movie_genre_facet'=>{
>  >>          'Drama'=>22,
>  >>          'Action/Adventure'=>11,
>  >>          'Comedy'=>11,
>  >>          'Suspense/Thriller'=>11,
>  >>          'SciFi/Fantasy'=>5,
>  >>          'Animation'=>4,
>  >>          'Documentary'=>4,
>  >>          'Family'=>3,
>  >>          'Horror'=>3,
>  >>          'Musical'=>2,
>  >>          'Romance'=>2,
>  >>          'Concert'=>1,
>  >>          'War'=>1}},
>  >>    'facet_dates'=>{}}
>  >>
>  >>  Doug
>  >>
>  >>
>  >>
>  >>  Yonik Seeley wrote:
>  >>  > On Wed, Mar 5, 2008 at 11:25 AM, Doug Steigerwald
>  >>  > <dsteigerwald@mcclatchyinteractive.com> wrote:
>  >>  >>  If you don't add the json.nl=map to your params, then you can't
eval() what you get back in Ruby
>  >>  >>  ("can't convert String into Integer").
>  >>  >
>  >>  > Can you show what the problematic ruby output is?
>  >>  >
>  >>  > json.nl=map isn't the default because some things need to be ordered,
>  >>  > and eval of a map in python & ruby looses that order.
>  >>  >
>  >>  > -Yonik
>  >>
>

Mime
View raw message