Hi,

I'm trying to index the following JSON with 2 child level using the
following curl command using cygwin:

curl 'http://localhost:8983/solr/collection1/update/json/docs?split=/|/orgs'
    -H 'Content-type:application/json' -d '
{
  "id":"1",
  "name_s": "JoeSmith",
  "phone_s": 876876687,
  "orgs": [
    {
      "name1_s" : "Microsoft",
      "city_s" : "Seattle",
      "zip_s" : 98052,
  "orgs":[{"name2_ss":"alan","phone2_ss":"123"},{"name2_ss":
"edwin","phone2_ss":"456"}]
},
    {
      "name1_s" : "Apple",
      "city_s" : "Cupertino",
      "zip_s" : 95014,
  "orgs":[{"name2_ss":"alan","phone2_ss":"123"},{"name2_ss":
"edwin","phone2_ss":"456"}]
    }
  ]
}'

However, after indexing, this is what is shown in Solr. The 2nd child have
been place together under the 1st child as a multi-valued field, which is
wrong. If I have set the field for the 2nd child to be non-multi-valued
field,  it will have error saying "multiple values encountered for non
multiValued field orgs2.name2_s:".

{
  "responseHeader":{
    "zkConnected":true,
    "status":0,
    "QTime":41,
    "params":{
      "q":"phone_s:876876687",
      "fl":"*,[child parentFilter=phone_s:876876687]",
      "sort":"id asc"}},
  "response":{"numFound":1,"start":0,"docs":[
      {
        "id":"1",
        "name_s":"JoeSmith",
        "phone_s":"876876687",
        "language_s":"en",
        "_version_":1595632041779527680,
        "_childDocuments_":[
        {
          "name1_s":"Microsoft",
          "city_s":"Seattle",
          "zip_s":"98052",
          "orgs.name2_ss":["alan",
            "edwin"],
          "orgs.phone2_ss":["123",
            "456"],
          "_version_":1595632041779527680},
        {
          "name1_s":"Apple",
          "city_s":"Cupertino",
          "zip_s":"95014",
          "orgs.name2_ss":["alan",
            "edwin"],
          "orgs.phone2_ss":["123",
            "456"],
          "_version_":1595632041779527680}]}]
  }}


How can we structure the curl command so it will be able to accept child of
child relationship? We should not be doing any pre-processing to the JSON
to achieve that.

I'm using Solr 7.2.1.

Regards,
Edwin

Reply via email to