Hi,

I'm running into an exception with Solr 9.0.0 for a request that works fine
with Solr 8.11.2 and I have no idea why.


I've modified the techproducts example schema to store the _root_ field and
add a _nest_path_.


   <field name="_root_" type="string" indexed="true" stored="true"
docValues="false" />
   <fieldType name="_nest_path_" class="solr.NestPathField" />
   <field name="_nest_path_" type="_nest_path_" />


This request works fine with Solr 8.11.2, but not with Solr 9.0.0. It does
an atomic update of a field on a parent document and somehow the price
field causes an issue.


curl -s -X POST -H 'Content-Type: application/json' '
http://localhost:8983/solr/techproducts/update' --data-binary '
{
    "add":{
        "doc":{
            "id":"parent",
            "cat":["parent"],
            "child":{
                "id":"child",
                "cat":["child"],
                "price":1.5
            }
        }
    },
    "commit":{
        "softCommit":true,
        "waitSearcher":true
    },
    "add":{
        "doc":{
            "id":"parent",
            "cat":{"add":"updated"}
        }
    }
}'


Solr 8.11.2:


{
  "responseHeader":{
    "status":0,
    "QTime":1}}


Solr 9.0.0:


{
  "responseHeader":{
    "status":400,
    "QTime":41},
  "error":{
    "metadata":[
      "error-class","org.apache.solr.common.SolrException",
      "root-error-class","java.lang.IllegalArgumentException"],
    "msg":"Exception writing document id parent to the index; possible
analysis error: cannot change field \"price_c____l_ns\" from doc values
type=NONE to inconsistent doc values type=NUMERIC",
    "code":400}}


However, if I don't do a commit between the two adds, I don't get the error.


Did something change between Solr 8 and 9 that I have to account for in my
schema or my update requests? Or is this a bug?


Kind regards,


Thomas Corthals

Reply via email to