lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mark Miller (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (SOLR-2627) Solr's JSON request format isn't valid JSON
Date Tue, 28 Jun 2011 23:44:28 GMT

    [ https://issues.apache.org/jira/browse/SOLR-2627?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13056892#comment-13056892
] 

Mark Miller commented on SOLR-2627:
-----------------------------------

Heh - now I have to read this spec. A 'SHOULD' rule leading to a 'not properly formatted json'
sounds a little fishy ;)

> Solr's JSON request format isn't valid JSON
> -------------------------------------------
>
>                 Key: SOLR-2627
>                 URL: https://issues.apache.org/jira/browse/SOLR-2627
>             Project: Solr
>          Issue Type: Bug
>          Components: update
>    Affects Versions: 3.2
>            Reporter: Brian Pontarelli
>            Priority: Critical
>              Labels: json
>
> I've been working with Solr's JSON request and response to get it up and running in my
application and it looks like the JSON request format is not properly formatted JSON. Here's
an example of a request with multiple documents (from the Wiki):
> {code:javascript}
> {
>  "add": {"doc": {"id" : "TestDoc1", "title" : "test1"} },
>  "add": {"doc": {"id" : "TestDoc2", "title" : "another test"} }
> }
> {code}
> Unfortunately, this is not valid JSON because according to RFC-4627 section 2.2, "The
names within an object SHOULD be unique." This means that defining the name "add" twice is
not allowed. Instead, the JSON should use an array for multiple documents like this:
> {code:javascript}
> {
>  "add": [{"doc": {"id" : "TestDoc1", "title" : "test1"}},
>          {"doc": {"id" : "TestDoc2", "title" : "another test"}}]
> }
> {code}
> An alternate form that simplifies this entire thing is to remove the "doc" identifier
as it doesn't appear to provide useful information. That form would be:
> {code:javascript}
> {
>  "add": [{"id" : "TestDoc1", "title" : "test1"},
>          {"id" : "TestDoc2", "title" : "another test"}]
> }
> {code}
> It looks like Noggit uses a stream based Parser that doesn't put these values into a
Map or JavaBean, otherwise this would have revealed itself much sooner. I run into the issue
when attempting to create a Map that I could pass to a JSON binder such as Jackson or Google-GSON.
Given the current format, none of those tools will work with Solr.
> It also looks like Noggit is not really moving out of labs. It would be nice to use a
more well known and active project for the JSON handling as it is quickly becoming the de-facto
standard. I can open a ticket for that separately if needed and help out with the code.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org


Mime
View raw message