[ 
https://issues.apache.org/jira/browse/SOLR-17449?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Seunghan Jung updated SOLR-17449:
---------------------------------
    Description: 
For fields of type `bboxField`, derived fields such as `minX`, `maxX`, `minY`, 
`maxY`, etc., are added to the schema and indexed.

However, this causes issues during atomic updates. During an atomic update, 
when a new document is moved and indexed, the fields of type `bboxField` are 
re-indexed with `minX`, `maxX`, `minY`, `maxY` just as they were initially. 
Since the original document already contains these fields, they are indexed 
again in the new document. However, because they are already indexed by the 
`bbox` field, this results in duplicate indexing. If the `numberType` attribute 
of the bbox field type has `docValues=true`, an error occurs due to the 
docValues being written twice.

Here is the error message for this case:
{code:java}
Caused by: java.lang.IllegalArgumentException: DocValuesField "bbox__maxX" 
appears more than once in this document (only one value is allowed per field)
        at 
org.apache.lucene.index.NumericDocValuesWriter.addValue(NumericDocValuesWriter.java:53)
 ~[?:?]
        at 
org.apache.lucene.index.IndexingChain.indexDocValue(IndexingChain.java:937) 
~[?:?]
        at 
org.apache.lucene.index.IndexingChain.processField(IndexingChain.java:723) 
~[?:?]
        at 
org.apache.lucene.index.IndexingChain.processDocument(IndexingChain.java:576) 
~[?:?]
        at 
org.apache.lucene.index.DocumentsWriterPerThread.updateDocuments(DocumentsWriterPerThread.java:242)
 ~[?:?]
        at 
org.apache.lucene.index.DocumentsWriter.updateDocuments(DocumentsWriter.java:432)
 ~[?:?]
        at 
org.apache.lucene.index.IndexWriter.updateDocuments(IndexWriter.java:1545) 
~[?:?]
        at 
org.apache.lucene.index.IndexWriter.updateDocuments(IndexWriter.java:1521) 
~[?:?]
        at 
org.apache.solr.update.DirectUpdateHandler2.updateDocOrDocValues(DirectUpdateHandler2.java:1062)
 ~[?:?]
        at 
org.apache.solr.update.DirectUpdateHandler2.doNormalUpdate(DirectUpdateHandler2.java:421)
 ~[?:?]
        at 
org.apache.solr.update.DirectUpdateHandler2.addDoc0(DirectUpdateHandler2.java:374)
 ~[?:?]
        at 
org.apache.solr.update.DirectUpdateHandler2.addDoc(DirectUpdateHandler2.java:311)
 ~[?:?]{code}
 

Of course, setting the docValues="false" for the field type used in numberType 
resolves the issue.

However, this is not explained in the[ Solr Reference 
Guide|https://solr.apache.org/guide/solr/latest/query-guide/spatial-search.html#bboxfield].
 Instead, the example schema shows docValues="true", which makes it seem like 
this is how it should be configured.

!image-2024-09-13-17-45-17-161.png|width=1037,height=233!

  was:
For fields of type `bboxField`, derived fields such as `minX`, `maxX`, `minY`, 
`maxY`, etc., are added to the schema and indexed.

However, this causes issues during atomic updates. During an atomic update, 
when a new document is moved and indexed, the fields of type `bboxField` are 
re-indexed with `minX`, `maxX`, `minY`, `maxY` just as they were initially. 
Since the original document already contains these fields, they are indexed 
again in the new document. However, because they are already indexed by the 
`bbox` field, this results in duplicate indexing. If the `numberType` attribute 
of the bbox field type has `docValues=true`, an error occurs due to the 
docValues being written twice.

Here is the error message for this case:
{code:java}
Caused by: java.lang.IllegalArgumentException: DocValuesField "bbox__maxX" 
appears more than once in this document (only one value is allowed per field)
        at 
org.apache.lucene.index.NumericDocValuesWriter.addValue(NumericDocValuesWriter.java:53)
 ~[?:?]
        at 
org.apache.lucene.index.IndexingChain.indexDocValue(IndexingChain.java:937) 
~[?:?]
        at 
org.apache.lucene.index.IndexingChain.processField(IndexingChain.java:723) 
~[?:?]
        at 
org.apache.lucene.index.IndexingChain.processDocument(IndexingChain.java:576) 
~[?:?]
        at 
org.apache.lucene.index.DocumentsWriterPerThread.updateDocuments(DocumentsWriterPerThread.java:242)
 ~[?:?]
        at 
org.apache.lucene.index.DocumentsWriter.updateDocuments(DocumentsWriter.java:432)
 ~[?:?]
        at 
org.apache.lucene.index.IndexWriter.updateDocuments(IndexWriter.java:1545) 
~[?:?]
        at 
org.apache.lucene.index.IndexWriter.updateDocuments(IndexWriter.java:1521) 
~[?:?]
        at 
org.apache.solr.update.DirectUpdateHandler2.updateDocOrDocValues(DirectUpdateHandler2.java:1062)
 ~[?:?]
        at 
org.apache.solr.update.DirectUpdateHandler2.doNormalUpdate(DirectUpdateHandler2.java:421)
 ~[?:?]
        at 
org.apache.solr.update.DirectUpdateHandler2.addDoc0(DirectUpdateHandler2.java:374)
 ~[?:?]
        at 
org.apache.solr.update.DirectUpdateHandler2.addDoc(DirectUpdateHandler2.java:311)
 ~[?:?]{code}


> bboxField subfield Error in atomic updating
> -------------------------------------------
>
>                 Key: SOLR-17449
>                 URL: https://issues.apache.org/jira/browse/SOLR-17449
>             Project: Solr
>          Issue Type: Bug
>      Security Level: Public(Default Security Level. Issues are Public) 
>          Components: Schema and Analysis
>    Affects Versions: main (10.0)
>            Reporter: Seunghan Jung
>            Priority: Minor
>         Attachments: image-2024-09-13-17-45-17-161.png
>
>
> For fields of type `bboxField`, derived fields such as `minX`, `maxX`, 
> `minY`, `maxY`, etc., are added to the schema and indexed.
> However, this causes issues during atomic updates. During an atomic update, 
> when a new document is moved and indexed, the fields of type `bboxField` are 
> re-indexed with `minX`, `maxX`, `minY`, `maxY` just as they were initially. 
> Since the original document already contains these fields, they are indexed 
> again in the new document. However, because they are already indexed by the 
> `bbox` field, this results in duplicate indexing. If the `numberType` 
> attribute of the bbox field type has `docValues=true`, an error occurs due to 
> the docValues being written twice.
> Here is the error message for this case:
> {code:java}
> Caused by: java.lang.IllegalArgumentException: DocValuesField "bbox__maxX" 
> appears more than once in this document (only one value is allowed per field)
>         at 
> org.apache.lucene.index.NumericDocValuesWriter.addValue(NumericDocValuesWriter.java:53)
>  ~[?:?]
>         at 
> org.apache.lucene.index.IndexingChain.indexDocValue(IndexingChain.java:937) 
> ~[?:?]
>         at 
> org.apache.lucene.index.IndexingChain.processField(IndexingChain.java:723) 
> ~[?:?]
>         at 
> org.apache.lucene.index.IndexingChain.processDocument(IndexingChain.java:576) 
> ~[?:?]
>         at 
> org.apache.lucene.index.DocumentsWriterPerThread.updateDocuments(DocumentsWriterPerThread.java:242)
>  ~[?:?]
>         at 
> org.apache.lucene.index.DocumentsWriter.updateDocuments(DocumentsWriter.java:432)
>  ~[?:?]
>         at 
> org.apache.lucene.index.IndexWriter.updateDocuments(IndexWriter.java:1545) 
> ~[?:?]
>         at 
> org.apache.lucene.index.IndexWriter.updateDocuments(IndexWriter.java:1521) 
> ~[?:?]
>         at 
> org.apache.solr.update.DirectUpdateHandler2.updateDocOrDocValues(DirectUpdateHandler2.java:1062)
>  ~[?:?]
>         at 
> org.apache.solr.update.DirectUpdateHandler2.doNormalUpdate(DirectUpdateHandler2.java:421)
>  ~[?:?]
>         at 
> org.apache.solr.update.DirectUpdateHandler2.addDoc0(DirectUpdateHandler2.java:374)
>  ~[?:?]
>         at 
> org.apache.solr.update.DirectUpdateHandler2.addDoc(DirectUpdateHandler2.java:311)
>  ~[?:?]{code}
>  
> Of course, setting the docValues="false" for the field type used in 
> numberType resolves the issue.
> However, this is not explained in the[ Solr Reference 
> Guide|https://solr.apache.org/guide/solr/latest/query-guide/spatial-search.html#bboxfield].
>  Instead, the example schema shows docValues="true", which makes it seem like 
> this is how it should be configured.
> !image-2024-09-13-17-45-17-161.png|width=1037,height=233!



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org
For additional commands, e-mail: issues-h...@solr.apache.org

Reply via email to