Solr indexing problem when linking dataverses containing "Geographic Bounding Box" metadata
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 1.1k
- Forks
- 564
- Avg merge
- 2d 2h
- Merged PRs (30d)
- 29
Description
Bug description
When creating a link between two dataverses via the API, if the source dataverse contains a dataset with geographic coordinate metadata (bounding box), a Solr indexing error occurs.
Steps to reproduce
- Create Dataverse A containing a dataset (draft or publish) with geographic coordinate metadata (bounding box)
- Create Dataverse B which will host the link
- Execute the API command to create the link:
curl -H "X-Dataverse-key: $API_TOKEN" -X PUT "http://$SERVER/api/dataverses/$linked-dataverse-alias/link/$linking-dataverse-alias"
Observed behavior
Dataverse v6.0
The API returns an error directly (also present in the SolR logs):
{"status":"ERROR","message":"Command edu.harvard.iq.dataverse.engine.command.impl.DeleteDataverseLinkingDataverseCommand@499c5c52 failed: Exception thrown from bean: jakarta.ejb.EJBTransactionRolledbackException: Exception thrown from bean: org.apache.solr.client.solrj.impl.BaseHttpSolrClient$RemoteSolrException: Error from server at http://localhost:8983/solr/collection1: Exception writing document id dataset_8 to the index; possible analysis error: DocValuesField \"boundingBox__maxY\" appears more than once in this document (only one value is allowed per field)"}
Dataverse v6.8
The API does not return an error (apparent success), but the same error appears in the Solr logs:
Exception writing document id dataset_8 to the index; possible analysis error: DocValuesField "boundingBox__maxY" appears more than once in this document (only one value is allowed per field)
Result
In both versions, the dataset from Dataverse A is not visible in Dataverse B (link host).
Expected behavior
- The link should be created without errors
- The dataset with geographic coordinates should be visible and searchable from the host Dataverse
Tested versions
- Dataverse 6.0
- Dataverse 6.8
Are you thinking about creating a pull request for this issue?
No fix is currently planned by the team.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the failure with the dataverse link API command and a dataset containing Geographic Bounding Box metadata, then inspect the link-creation and indexing path around the reported Solr error. Done means the link succeeds without the duplicate boundingBox__maxY error and the dataset is visible and searchable from the host Dataverse.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- api, backend, search
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100