Uploaded image for project: 'Solr'
  1. Solr
  2. SOLR-7123

/update/json/docs should have nested document support

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 6.1, 7.0
    • Component/s: None
    • Labels:

      Description

      It is the next logical step after SOLR-6304
      For the example document given below where the /orgs belong to a nested document,

      {
      name: 'Joe Smith',
      phone: 876876687 ,
      orgs :[ {name : Microsoft,
                city: "Seattle,
                zip: 98052},
              {name: Apple,
               city : Cupertino,
               zip :95014 }
            ]
      } 
      

      The extra mapping parameters would be

      split=/|/orgs&
      f=name:/orgs/name&
      f=city:/orgs/city&
      f=zip:/orgs/zip
      
      • The objects at /org automatically becomes a child document because /org is a child path of{{/}}
      • All fields falling under the /orgs/ will be mapped to the child document

      alternately you can just do

      split=/|/orgs&f=$FQN:/**
      

      The fully qualified name (FQN) for chiild docs begin from /org. So the output would be

      {
        "name":"Joe Smith",
        "phone":876876687,
        "_childDocuments_":[
          {
            "name":"Microsoft",
            "city":"Seattle",
            "zip":98052},
          {
            "name":"Apple",
            "city":"Cupertino",
            "zip":95014}]}
      
      1. NestedDocumentMapper.java
        3 kB
        Timothy Potter
      2. SOLR-7123.patch
        16 kB
        Noble Paul
      3. SOLR-7123.patch
        6 kB
        Vitaliy Zhovtyuk
      4. SOLR-7123-test.patch
        2 kB
        Anshum Gupta

        Issue Links

          Activity

          Hide
          vzhovtiuk Vitaliy Zhovtyuk added a comment -

          If got right the idea of nested document the result of such parse will be list of rows.
          Row values represented as map where nested documents node "org" is item in map, values of map will be list of maps containing name, city and zip.
          So taking into account sample from SOLR-6304 it can look like:
          [{ "recipeId":"001", "recipeType":"donut", "id":"1001", "type":"Regular" , "o" : [

          {" name" : "Microsoft", "city": "Seattle", "zip": 98052}

          ,

          {"name": “Apple”, "city:”Cupertino”, "zip":"95014" }

          ]}]
          So accordingly to parent split behaviour we transform nested documents with child split same way.

          Show
          vzhovtiuk Vitaliy Zhovtyuk added a comment - If got right the idea of nested document the result of such parse will be list of rows. Row values represented as map where nested documents node "org" is item in map, values of map will be list of maps containing name, city and zip. So taking into account sample from SOLR-6304 it can look like: [{ "recipeId":"001", "recipeType":"donut", "id":"1001", "type":"Regular" , "o" : [ {" name" : "Microsoft", "city": "Seattle", "zip": 98052} , {"name": “Apple”, "city:”Cupertino”, "zip":"95014" } ]}] So accordingly to parent split behaviour we transform nested documents with child split same way.
          Hide
          vzhovtiuk Vitaliy Zhovtyuk added a comment -

          Added tests for nested documents
          Changes interface

          Show
          vzhovtiuk Vitaliy Zhovtyuk added a comment - Added tests for nested documents Changes interface
          Hide
          noble.paul Noble Paul added a comment - - edited

          I looked at the patch but I do not know what is the new syntax. It does not match the description of this ticket. If you have changed the syntax , Please provide detailed documentation on how the syntax will work with an example

          In the patch, JsonLoader does not take care of this new syntax

          Show
          noble.paul Noble Paul added a comment - - edited I looked at the patch but I do not know what is the new syntax. It does not match the description of this ticket. If you have changed the syntax , Please provide detailed documentation on how the syntax will work with an example In the patch, JsonLoader does not take care of this new syntax
          Hide
          thelabdude Timothy Potter added a comment -

          Here's some code I wrote for this issue.

          Show
          thelabdude Timothy Potter added a comment - Here's some code I wrote for this issue.
          Hide
          noble.paul Noble Paul added a comment -

          implementation as given in the description with tests

          Show
          noble.paul Noble Paul added a comment - implementation as given in the description with tests
          Hide
          jira-bot ASF subversion and git services added a comment -

          Commit 34d9f0a7a32e975435d3b0770155e67565f74735 in lucene-solr's branch refs/heads/master from Noble Paul
          [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=34d9f0a ]

          SOLR-7123: '/update/json/docs' path supports nested documents

          Show
          jira-bot ASF subversion and git services added a comment - Commit 34d9f0a7a32e975435d3b0770155e67565f74735 in lucene-solr's branch refs/heads/master from Noble Paul [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=34d9f0a ] SOLR-7123 : '/update/json/docs' path supports nested documents
          Hide
          jira-bot ASF subversion and git services added a comment -

          Commit 91f8edca8f586e83209944a59a9d3cad6d951245 in lucene-solr's branch refs/heads/branch_6x from Noble Paul
          [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=91f8edc ]

          SOLR-7123: '/update/json/docs' path supports nested documents

          Show
          jira-bot ASF subversion and git services added a comment - Commit 91f8edca8f586e83209944a59a9d3cad6d951245 in lucene-solr's branch refs/heads/branch_6x from Noble Paul [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=91f8edc ] SOLR-7123 : '/update/json/docs' path supports nested documents
          Hide
          anshumg Anshum Gupta added a comment -

          Thanks Noble! Haven't looked at this yet but here's something that can be a much better experience. For the data:

          {
          name: 'Joe Smith',
          phone: 876876687 ,
          orgs :[ {name : Microsoft,
                    city: "Seattle,
                    zip: 98052},
                  {name: Apple,
                   city : Cupertino,
                   zip :95014 }
                ]
          } 

          we lose information about the "orgs" tag. The users would really expect queries like the one below to work w.r.t. the data that was sent

          &q=orgs.zip:95014
          

          I may be missing something here but if I'm not it'd make sense to at least have that supported.

          Show
          anshumg Anshum Gupta added a comment - Thanks Noble! Haven't looked at this yet but here's something that can be a much better experience. For the data: { name: 'Joe Smith', phone: 876876687 , orgs :[ {name : Microsoft, city: "Seattle, zip: 98052}, {name: Apple, city : Cupertino, zip :95014 } ] } we lose information about the "orgs" tag. The users would really expect queries like the one below to work w.r.t. the data that was sent &q=orgs.zip:95014 I may be missing something here but if I'm not it'd make sense to at least have that supported.
          Hide
          noble.paul Noble Paul added a comment -

          you can map it to any name by using the name explicitly
          e.g f=orgs.zip:/orgs/zip

          Show
          noble.paul Noble Paul added a comment - you can map it to any name by using the name explicitly e.g f=orgs.zip:/orgs/zip
          Hide
          jira-bot ASF subversion and git services added a comment -

          Commit 7f6be6e893baab6b4f5bf31e01cc684111a6e3ed in lucene-solr's branch refs/heads/branch_6x from Noble Paul
          [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=7f6be6e ]

          SOLR-7123: Syntax modified. Multiple paths can be added in the split parameter itself (pipe separated)

          Show
          jira-bot ASF subversion and git services added a comment - Commit 7f6be6e893baab6b4f5bf31e01cc684111a6e3ed in lucene-solr's branch refs/heads/branch_6x from Noble Paul [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=7f6be6e ] SOLR-7123 : Syntax modified. Multiple paths can be added in the split parameter itself (pipe separated)
          Hide
          anshumg Anshum Gupta added a comment -

          Noble Paul so this eliminates any need for the child.split param. We should fix the ref guide too. I can do that if you want, once I try this out and understand it better.

          Show
          anshumg Anshum Gupta added a comment - Noble Paul so this eliminates any need for the child.split param. We should fix the ref guide too. I can do that if you want, once I try this out and understand it better.
          Hide
          noble.paul Noble Paul added a comment -

          it's already done

          Show
          noble.paul Noble Paul added a comment - it's already done
          Hide
          anshumg Anshum Gupta added a comment -

          Noble Paul You missed committing this to master. I'll port it.

          Show
          anshumg Anshum Gupta added a comment - Noble Paul You missed committing this to master. I'll port it.
          Hide
          jira-bot ASF subversion and git services added a comment -

          Commit 66cd0edc52a35fa43182a57c1f3dbfb420334f1e in lucene-solr's branch refs/heads/master from Noble Paul
          [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=66cd0ed ]

          SOLR-7123: Syntax modified. Multiple paths can be added in the split parameter itself (pipe separated)

          Show
          jira-bot ASF subversion and git services added a comment - Commit 66cd0edc52a35fa43182a57c1f3dbfb420334f1e in lucene-solr's branch refs/heads/master from Noble Paul [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=66cd0ed ] SOLR-7123 : Syntax modified. Multiple paths can be added in the split parameter itself (pipe separated)
          Hide
          anshumg Anshum Gupta added a comment -

          While working on a test for this, I figured that you may get a List/Map depending upon the number of children a data node has. I think it makes sense to just return a List always.

          Show
          anshumg Anshum Gupta added a comment - While working on a test for this, I figured that you may get a List/Map depending upon the number of children a data node has. I think it makes sense to just return a List always.
          Hide
          anshumg Anshum Gupta added a comment -

          Reopening this to add tests and improve this as this hasn't been released yet.

          Show
          anshumg Anshum Gupta added a comment - Reopening this to add tests and improve this as this hasn't been released yet.
          Hide
          anshumg Anshum Gupta added a comment -

          The correct patch file.

          Show
          anshumg Anshum Gupta added a comment - The correct patch file.
          Hide
          noble.paul Noble Paul added a comment - - edited

          There are a lot of instances when a doc just has one single child. They will be surprised to see a list. Let us make it smart. If the item is an array in JSON let's make it a List or just a single Map

          Show
          noble.paul Noble Paul added a comment - - edited There are a lot of instances when a doc just has one single child. They will be surprised to see a list. Let us make it smart. If the item is an array in JSON let's make it a List or just a single Map
          Hide
          anshumg Anshum Gupta added a comment -

          Well, if the incoming JSON element was an array, I don't see why would it be surprising to see an array with a single element. Not being able to ascertain the type of x.get(null) isn't too comforting Not to mention, the 'null' part itself.

          Show
          anshumg Anshum Gupta added a comment - Well, if the incoming JSON element was an array, I don't see why would it be surprising to see an array with a single element. Not being able to ascertain the type of x.get(null) isn't too comforting Not to mention, the 'null' part itself.
          Hide
          anshumg Anshum Gupta added a comment -

          There seems to be some issue here. Here's what I'm trying to do:

          anshum$ curl -X POST -H 'Content:application/json' "http://localhost:8983/solr/foo/update/json/docs?child.split=/children|/children/grandchildren&f=$FQN:/**&f=id:/children/id&f=name:/children/name&f=cat:/children/cat&f=id:/children/grandchildren/id&f=name:/children/grandchildren/name&f=cat:/children/grandchildren/cat&indent=true" --data-binary '{"id":"1","name": "i am the parent","cat": "parent","children" : [{"id": "1.1", "name": "i am the 1st child", "cat": "child"}, {"id":"1.2", "name": "i am the 2nd child", "cat": "child", "grandchildren" : [{"id": "1.2.1", "name": "i am the grandchild","cat" : "grandchild"}]}]}'
          

          and here's the error

          {
            "responseHeader":{
              "status":500,
              "QTime":0},
            "error":{
              "msg":"All paths must start with '/' :/**",
              "trace":"java.lang.RuntimeException: All paths must start with '/' :/**\n\tat org.apache.solr.common.util.JsonRecordReader.addField(JsonRecordReader.java:99)\n\tat org.apache.solr.common.util.JsonRecordReader.getInst(JsonRecordReader.java:49)\n\tat org.apache.solr.handler.loader.JsonLoader$SingleThreadedJsonLoader.handleSplitMode(JsonLoader.java:211)\n\tat org.apache.solr.handler.loader.JsonLoader$SingleThreadedJsonLoader.processUpdate(JsonLoader.java:129)\n\tat org.apache.solr.handler.loader.JsonLoader$SingleThreadedJsonLoader.load(JsonLoader.java:114)\n\tat org.apache.solr.handler.loader.JsonLoader.load(JsonLoader.java:77)\n\tat org.apache.solr.handler.UpdateRequestHandler$1.load(UpdateRequestHandler.java:97)\n\tat org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:69)\n\tat org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:156)\n\tat org.apache.solr.core.SolrCore.execute(SolrCore.java:2036)\n\tat org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:658)\n\tat org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:465)\n\tat org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:257)\n\tat org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:208)\n\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)\n\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)\n\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)\n\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)\n\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)\n\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1160)\n\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)\n\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)\n\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1092)\n\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)\n\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)\n\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:119)\n\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134)\n\tat org.eclipse.jetty.server.Server.handle(Server.java:518)\n\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)\n\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:244)\n\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273)\n\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)\n\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93)\n\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:246)\n\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:156)\n\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)\n\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)\n\tat java.lang.Thread.run(Thread.java:745)\n",
              "code":500}}
          

          When I try to add an explicit mapping for field 'id', here's what I get:

          
          curl -X POST -H 'Content:application/json' "http://localhost:8983/solr/foo/update/json/docs?child.split=/children|/children/grandchildren&f=id:/children/id&f=name:/children/name&f=cat:/children/cat&f=id:/children/grandchildren/id&f=name:/children/grandchildren/name&f=cat:/children/grandchildren/cat&indent=true" --data-binary '{"id":"1","name": "i am the parent","cat": "parent","children" : [{"id": "1.1", "name": "i am the 1st child", "cat": "child"}, {"id":"1.2", "name": "i am the 2nd child", "cat": "child", "grandchildren" : [{"id": "1.2.1", "name": "i am the grandchild","cat" : "grandchild"}]}]}'
          
          anshum$ curl -X POST -H 'Content:application/json' "http://localhost:8983/solr/foo/update/json/docs?child.split=/children|/children/grandchildren&f=id:/id&f=id:/children/id&f=name:/children/name&f=cat:/children/cat&f=id:/children/grandchildren/id&f=name:/children/grandchildren/name&f=cat:/children/grandchildren/cat&indent=true" --data-binary '{"id":"1","name": "i am the parent","cat": "parent","children" : [{"id": "1.1", "name": "i am the 1st child", "cat": "child"}, {"id":"1.2", "name": "i am the 2nd child", "cat": "child", "grandchildren" : [{"id": "1.2.1", "name": "i am the grandchild","cat" : "grandchild"}]}]}'
          {
            "responseHeader":{
              "status":400,
              "QTime":0},
            "error":{
              "metadata":[
                "error-class","org.apache.solr.common.SolrException",
                "root-error-class","org.apache.solr.common.SolrException"],
              "msg":"Document contains multiple values for uniqueKey field: id=[1, 1.1, 1.2, 1.2.1]",
              "code":400}}
          

          We need to fix this before 6.1 goes out.

          Show
          anshumg Anshum Gupta added a comment - There seems to be some issue here. Here's what I'm trying to do: anshum$ curl -X POST -H 'Content:application/json' "http: //localhost:8983/solr/foo/update/json/docs?child.split=/children|/children/grandchildren&f=$FQN:/**&f=id:/children/id&f=name:/children/name&f=cat:/children/cat&f=id:/children/grandchildren/id&f=name:/children/grandchildren/name&f=cat:/children/grandchildren/cat&indent= true " --data-binary '{ "id" : "1" , "name" : "i am the parent" , "cat" : "parent" , "children" : [{ "id" : "1.1" , "name" : "i am the 1st child" , "cat" : "child" }, { "id" : "1.2" , "name" : "i am the 2nd child" , "cat" : "child" , "grandchildren" : [{ "id" : "1.2.1" , "name" : "i am the grandchild" , "cat" : "grandchild" }]}]}' and here's the error { "responseHeader" :{ "status" :500, "QTime" :0}, "error" :{ "msg" : "All paths must start with '/' :/**" , "trace" : "java.lang.RuntimeException: All paths must start with '/' :/**\n\tat org.apache.solr.common.util.JsonRecordReader.addField(JsonRecordReader.java:99)\n\tat org.apache.solr.common.util.JsonRecordReader.getInst(JsonRecordReader.java:49)\n\tat org.apache.solr.handler.loader.JsonLoader$SingleThreadedJsonLoader.handleSplitMode(JsonLoader.java:211)\n\tat org.apache.solr.handler.loader.JsonLoader$SingleThreadedJsonLoader.processUpdate(JsonLoader.java:129)\n\tat org.apache.solr.handler.loader.JsonLoader$SingleThreadedJsonLoader.load(JsonLoader.java:114)\n\tat org.apache.solr.handler.loader.JsonLoader.load(JsonLoader.java:77)\n\tat org.apache.solr.handler.UpdateRequestHandler$1.load(UpdateRequestHandler.java:97)\n\tat org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:69)\n\tat org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:156)\n\tat org.apache.solr.core.SolrCore.execute(SolrCore.java:2036)\n\tat org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:658)\n\tat org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:465)\n\tat org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:257)\n\tat org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:208)\n\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)\n\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)\n\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)\n\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)\n\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)\n\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1160)\n\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511)\n\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)\n\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1092)\n\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)\n\tat org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)\n\tat org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:119)\n\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134)\n\tat org.eclipse.jetty.server.Server.handle(Server.java:518)\n\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308)\n\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:244)\n\tat org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273)\n\tat org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)\n\tat org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93)\n\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:246)\n\tat org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:156)\n\tat org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)\n\tat org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)\n\tat java.lang. Thread .run( Thread .java:745)\n" , "code" :500}} When I try to add an explicit mapping for field 'id', here's what I get: curl -X POST -H 'Content:application/json' "http: //localhost:8983/solr/foo/update/json/docs?child.split=/children|/children/grandchildren&f=id:/children/id&f=name:/children/name&f=cat:/children/cat&f=id:/children/grandchildren/id&f=name:/children/grandchildren/name&f=cat:/children/grandchildren/cat&indent= true " --data-binary '{ "id" : "1" , "name" : "i am the parent" , "cat" : "parent" , "children" : [{ "id" : "1.1" , "name" : "i am the 1st child" , "cat" : "child" }, { "id" : "1.2" , "name" : "i am the 2nd child" , "cat" : "child" , "grandchildren" : [{ "id" : "1.2.1" , "name" : "i am the grandchild" , "cat" : "grandchild" }]}]}' anshum$ curl -X POST -H 'Content:application/json' "http: //localhost:8983/solr/foo/update/json/docs?child.split=/children|/children/grandchildren&f=id:/id&f=id:/children/id&f=name:/children/name&f=cat:/children/cat&f=id:/children/grandchildren/id&f=name:/children/grandchildren/name&f=cat:/children/grandchildren/cat&indent= true " --data-binary '{ "id" : "1" , "name" : "i am the parent" , "cat" : "parent" , "children" : [{ "id" : "1.1" , "name" : "i am the 1st child" , "cat" : "child" }, { "id" : "1.2" , "name" : "i am the 2nd child" , "cat" : "child" , "grandchildren" : [{ "id" : "1.2.1" , "name" : "i am the grandchild" , "cat" : "grandchild" }]}]}' { "responseHeader" :{ "status" :400, "QTime" :0}, "error" :{ "metadata" :[ "error-class" , "org.apache.solr.common.SolrException" , "root-error-class" , "org.apache.solr.common.SolrException" ], "msg" : "Document contains multiple values for uniqueKey field: id=[1, 1.1, 1.2, 1.2.1]" , "code" :400}} We need to fix this before 6.1 goes out.
          Hide
          jira-bot ASF subversion and git services added a comment -

          Commit 66cd0edc52a35fa43182a57c1f3dbfb420334f1e in lucene-solr's branch refs/heads/SOLR-9191 from Noble Paul
          [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=66cd0ed ]

          SOLR-7123: Syntax modified. Multiple paths can be added in the split parameter itself (pipe separated)

          Show
          jira-bot ASF subversion and git services added a comment - Commit 66cd0edc52a35fa43182a57c1f3dbfb420334f1e in lucene-solr's branch refs/heads/ SOLR-9191 from Noble Paul [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=66cd0ed ] SOLR-7123 : Syntax modified. Multiple paths can be added in the split parameter itself (pipe separated)
          Hide
          noble.paul Noble Paul added a comment - - edited

          There are 2 problems with the first command

          1) There is no param called child.split anymore. So your "split" param should be split=/|/children|/children/grandchildren
          2) The command line changes $FQN to an empty string because there is no environment variable called FQN. So escape that as f=\$FQN:/**

          Show
          noble.paul Noble Paul added a comment - - edited There are 2 problems with the first command 1) There is no param called child.split anymore. So your "split" param should be split=/|/children|/children/grandchildren 2) The command line changes $FQN to an empty string because there is no environment variable called FQN . So escape that as f=\$FQN:/**
          Hide
          jira-bot ASF subversion and git services added a comment -

          Commit fdf2bbbdb166c9514efe8afd5e143ccb924d2d88 in lucene-solr's branch refs/heads/master from Noble Paul
          [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=fdf2bbb ]

          SOLR-7123: echo shows wrong output, and added a test for multi level nesting

          Show
          jira-bot ASF subversion and git services added a comment - Commit fdf2bbbdb166c9514efe8afd5e143ccb924d2d88 in lucene-solr's branch refs/heads/master from Noble Paul [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=fdf2bbb ] SOLR-7123 : echo shows wrong output, and added a test for multi level nesting
          Hide
          jira-bot ASF subversion and git services added a comment -

          Commit 84c6e9a477272e71f48b9a8ef040431a0e3f0621 in lucene-solr's branch refs/heads/master from Noble Paul
          [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=84c6e9a ]

          SOLR-7123: echo shows wrong output, and added a test for multi level nesting

          Show
          jira-bot ASF subversion and git services added a comment - Commit 84c6e9a477272e71f48b9a8ef040431a0e3f0621 in lucene-solr's branch refs/heads/master from Noble Paul [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=84c6e9a ] SOLR-7123 : echo shows wrong output, and added a test for multi level nesting
          Hide
          jira-bot ASF subversion and git services added a comment -

          Commit a07c40a217361577afc484091fe2c292dbf4f688 in lucene-solr's branch refs/heads/branch_6x from Noble Paul
          [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=a07c40a ]

          SOLR-7123: echo shows wrong output, and added a test for multi level nesting

          Show
          jira-bot ASF subversion and git services added a comment - Commit a07c40a217361577afc484091fe2c292dbf4f688 in lucene-solr's branch refs/heads/branch_6x from Noble Paul [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=a07c40a ] SOLR-7123 : echo shows wrong output, and added a test for multi level nesting
          Hide
          jira-bot ASF subversion and git services added a comment -

          Commit 23f3b31114d7e0d98eb86c281185ac7bf6f835db in lucene-solr's branch refs/heads/branch_6x from Noble Paul
          [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=23f3b31 ]

          SOLR-7123: echo shows wrong output, and added a test for multi level nesting

          Show
          jira-bot ASF subversion and git services added a comment - Commit 23f3b31114d7e0d98eb86c281185ac7bf6f835db in lucene-solr's branch refs/heads/branch_6x from Noble Paul [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=23f3b31 ] SOLR-7123 : echo shows wrong output, and added a test for multi level nesting
          Hide
          jira-bot ASF subversion and git services added a comment -

          Commit f2dd03c1996748b4bee929659d794ed5aaffd4f5 in lucene-solr's branch refs/heads/branch_6_1 from Noble Paul
          [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=f2dd03c ]

          SOLR-7123: echo shows wrong output, and added a test for multi level nesting

          Show
          jira-bot ASF subversion and git services added a comment - Commit f2dd03c1996748b4bee929659d794ed5aaffd4f5 in lucene-solr's branch refs/heads/branch_6_1 from Noble Paul [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=f2dd03c ] SOLR-7123 : echo shows wrong output, and added a test for multi level nesting
          Hide
          jira-bot ASF subversion and git services added a comment -

          Commit ef6146b88500100cbdb482d20f05f50212f2d72f in lucene-solr's branch refs/heads/branch_6_1 from Noble Paul
          [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=ef6146b ]

          SOLR-7123: echo shows wrong output, and added a test for multi level nesting

          Show
          jira-bot ASF subversion and git services added a comment - Commit ef6146b88500100cbdb482d20f05f50212f2d72f in lucene-solr's branch refs/heads/branch_6_1 from Noble Paul [ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=ef6146b ] SOLR-7123 : echo shows wrong output, and added a test for multi level nesting
          Hide
          anshumg Anshum Gupta added a comment -

          Thanks for clarifying Noble. I also missed the '/' part of the split param as I assumed that wasn't required.

          Show
          anshumg Anshum Gupta added a comment - Thanks for clarifying Noble. I also missed the '/' part of the split param as I assumed that wasn't required.

            People

            • Assignee:
              noble.paul Noble Paul
              Reporter:
              noble.paul Noble Paul
            • Votes:
              2 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development