You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@solr.apache.org by "Olivier Boudet (Jira)" <ji...@apache.org> on 2026/08/05 06:37:00 UTC
[jira] [Updated] (SOLR-18335) SPLITSHARD fails to migrate existing documents when using custom router.field with compositeId
[ https://issues.apache.org/jira/browse/SOLR-18335?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Olivier Boudet updated SOLR-18335:
----------------------------------
Description:
When executing a {{SPLITSHARD}} operation on a collection configured with a custom routing field ({{{}router.field{}}} in {{{}compositeId{}}}), the operation completes almost instantly with {{status: 0}} (success), but existing documents are *not copied/migrated* into the new sub-shards.
As a result:
# New sub-shards are created and set to {{{}active{}}}, but remain empty (0 documents).
# Parent shards are marked as {{inactive}} with all original documents still residing in them, making these documents unsearchable.
# Sub-shards only receive newly indexed documents after the split.
*Note:* If the collection relies on the default {{id}} field using a prefixed syntax ({{{}company_id!doc_id{}}}), {{SPLITSHARD}} works as expected and documents are properly split. The issue only occurs when relying explicitly on a custom {{router.field}} setting.
h3. Steps to Reproduce
# Create a collection using {{compositeId}} routing with a custom {{{}router.field{}}}:
* Collection setting: "router":\{"name":"compositeId", "field":"company_id"}
* Schema field definition: <field name="company_id" type="plong" indexed="true" stored="true"/>{{{}{}}}
# Index sample documents into the collection
# Execute a {{SPLITSHARD}} command on one of the active shards
# Query the collection ({{{}q={*}:{*}{}}})
h3. Expected Result
The parent shard's documents should be properly split and re-indexed into the new sub-shards according to their hash ranges, making all pre-existing documents searchable in the active sub-shards.
h3. Actual Result
The {{SPLITSHARD}} command returns {{status: 0}} in milliseconds, but the sub-shards contain 0 documents. The existing documents remain stuck in the {{inactive}} parent shard and are no longer returned in search results.
h3. Minimal Reproducer
A minimal reproduction repository (with minimal schema and execution commands) is available here:
[https://github.com/olivierboudet/solr-splitshard-test/tree/main]
was:
When executing a {{SPLITSHARD}} operation on a collection configured with a custom routing field ({{{}router.field{}}} in {{{}compositeId{}}}), the operation completes almost instantly with {{status: 0}} (success), but existing documents are *not copied/migrated* into the new sub-shards.
As a result:
# New sub-shards are created and set to {{{}active{}}}, but remain empty (0 documents).
# Parent shards are marked as {{inactive}} with all original documents still residing in them, making these documents unsearchable.
# Sub-shards only receive newly indexed documents after the split.
*Note:* If the collection relies on the default {{id}} field using a prefixed syntax ({{{}company_id!doc_id{}}}), {{SPLITSHARD}} works as expected and documents are properly split. The issue only occurs when relying explicitly on a custom {{router.field}} setting.
h3. Steps to Reproduce
# Create a collection using {{compositeId}} routing with a custom {{{}router.field{}}}:
- Collection setting: "router":\{"name":"compositeId", "field":"company_id"}
- Schema field definition: <field name="company_id" type="plong" indexed="true" stored="true"/>{{{}{}}}
# Index sample documents into the collection
# Execute a {{SPLITSHARD}} command on one of the active shards
# Query the collection ({{{}q={*}:{*}{}}})
h3. Expected Result
The parent shard's documents should be properly split and re-indexed into the new sub-shards according to their hash ranges, making all pre-existing documents searchable in the active sub-shards.
h3. Actual Result
The {{SPLITSHARD}} command returns {{status: 0}} in milliseconds, but the sub-shards contain 0 documents. The existing documents remain stuck in the {{inactive}} parent shard and are no longer returned in search results.
h3. Minimal Reproducer
A minimal reproduction repository (with minimal schema and execution commands) is available here:
[https://github.com/olivierboudet/solr-splitshard-test/tree/main]
> SPLITSHARD fails to migrate existing documents when using custom router.field with compositeId
> ----------------------------------------------------------------------------------------------
>
> Key: SOLR-18335
> URL: https://issues.apache.org/jira/browse/SOLR-18335
> Project: Solr
> Issue Type: Bug
> Components: SolrCloud
> Affects Versions: 10.0
> Reporter: Olivier Boudet
> Priority: Major
>
> When executing a {{SPLITSHARD}} operation on a collection configured with a custom routing field ({{{}router.field{}}} in {{{}compositeId{}}}), the operation completes almost instantly with {{status: 0}} (success), but existing documents are *not copied/migrated* into the new sub-shards.
> As a result:
> # New sub-shards are created and set to {{{}active{}}}, but remain empty (0 documents).
> # Parent shards are marked as {{inactive}} with all original documents still residing in them, making these documents unsearchable.
> # Sub-shards only receive newly indexed documents after the split.
>
> *Note:* If the collection relies on the default {{id}} field using a prefixed syntax ({{{}company_id!doc_id{}}}), {{SPLITSHARD}} works as expected and documents are properly split. The issue only occurs when relying explicitly on a custom {{router.field}} setting.
> h3. Steps to Reproduce
> # Create a collection using {{compositeId}} routing with a custom {{{}router.field{}}}:
> * Collection setting: "router":\{"name":"compositeId", "field":"company_id"}
> * Schema field definition: <field name="company_id" type="plong" indexed="true" stored="true"/>{{{}{}}}
> # Index sample documents into the collection
> # Execute a {{SPLITSHARD}} command on one of the active shards
> # Query the collection ({{{}q={*}:{*}{}}})
> h3. Expected Result
> The parent shard's documents should be properly split and re-indexed into the new sub-shards according to their hash ranges, making all pre-existing documents searchable in the active sub-shards.
> h3. Actual Result
> The {{SPLITSHARD}} command returns {{status: 0}} in milliseconds, but the sub-shards contain 0 documents. The existing documents remain stuck in the {{inactive}} parent shard and are no longer returned in search results.
> h3. Minimal Reproducer
> A minimal reproduction repository (with minimal schema and execution commands) is available here:
> [https://github.com/olivierboudet/solr-splitshard-test/tree/main]
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@solr.apache.org
For additional commands, e-mail: issues-help@solr.apache.org