On 4/5/22 10:53, gnandre wrote:
Hi, here are the relevant fields from the schema.

<fieldType name="long" class="solr.LongPointField" docValues="true"/>
<field name="_version_" type="long" indexed="false" stored="false" docValues
="true" multiValued="false" />
<field name="views_count" type="long" stored="false" indexed="false"
docValues="true" multiValued="false"/>

There are no copyfields for views_count.

Here are the corresponding atomic indexing and commit requests:

curl http://solr:8983/solr/answers/update -d '[{"id" :
"answers:question:8029","views_count" : {"set":111}}]'
curl "http://solr:8983/solr/answers/update?commit=true";

Can you do some testing when there is no other indexing activity? What I'd like to see is a long directory listing of the index directory before an update like that, and then a long directory listing after an update like that.  To get the kind of listing I'm after, you would use "ls -al" on a POSIX system like Linux, and "dir" in a command prompt on windows.

It DOES change the value successfully. To verify if it is doing atomic
indexing or in-place update, I changed the name of one other field
from
<field name="asset_type" type="string" stored="true" indexed="true"
multiValued="true" default="1775"/>
to
<field name="asset_typ" type="string" stored="true" indexed="true"
multiValued="true" default="1775"/>
and reloaded the schema.

Now, when I send above mentioned atomic indexing request, I get following
error message:

{
   "responseHeader":{
     "status":400,
     "QTime":7},
   "error":{
     "metadata":[
       "error-class","org.apache.solr.common.SolrException",
       "root-error-class","org.apache.solr.common.SolrException"],
     "msg":"ERROR: [doc=answers:question:8029] unknown field 'asset_type'",
     "code":400}}

So, I believe that it is still trying to index other fields as well from
their stored values and it is not an in-place update. What am I missing?

It is entirely possible that the code that does atomic or in place updates checks the existing document against the current schema, and throws that error even for in-place updates.  I think it would have to do that to figure out whether it CAN do an in-place update.  I am not sure which part of the source code I would even need to check to figure that out.  But if you can do the test above, I should be able to tell you whether the update was fully atomic or in-place.

Thanks,
Shawn

Reply via email to