Frage

I wish to know if it is possible to post JSON/XML strins from SolrJ.

I am currently receiving documents from some messaging service as JSON strings.

One such document is as below:

{
  "id":"1","name":"Item 1","price":10,
  "producer":{"id":"10","name":"Prod 1",
    "address": {"id":"100","city":"City 1","zipcode":95000}
  }
}

Do I need to convert this string to SolrInputDocument for serving it to Solr?

I am currently using SolrJ and see no API for directly serving a JSON to Solr.

( I see post.jar shipped with Solr is able to post json/xml documents directly to Solr and I would like the same behavior via a SolrJ API )

If there is no such API, how do I convert the string to SolrInputDocument?

War es hilfreich?

Lösung

You don't need to convert it to SolrInputDocument. See http://wiki.apache.org/solr/Solrj#Directly_adding_POJOs_to_Solr

But Solr does not allow nested fields. You need to flatten your JSON i.e. keep only scalars, and arrays (or lists) as multi-valued fields only. You may convert it like this:

{
  "id":"1",
  "name":"Item 1",
  "price":10,
  "producer_id":"10",
  "producer_name":"Prod 1",
  "producer_address_id":"100",
  "producer_address_city": "city1",
  "producer_address_zipcode":95000
}

or you can also keep the producer address in a multi-valued field like this:

{
  "id":"1",
  "name":"Item 1",
  "price":10,
  "producer_id":"10",
  "producer_name":"Prod 1",
  "producer_address":["100", "city1", "95000"]
}

Which one you should choose depends on your query requirements.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top