The Samlingar - Museum Collections Search Platform is a complete system for ingesting, indexing, searching, and presenting cultural heritage objects. It is built on a modular architecture to support scalability and maintainability.
The system consists of independent components for data ingestion, search, API access, and the user interface.
graph LR
subgraph Ingestion [Data Ingestion]
direction TB
CSV[CSV Files] -->|1. Read| CSVIndexer[samlingar-csv-solr]
DB[Specify Database] -->|1. Read| DBIndexer[samlingar-specify-dwc]
end
subgraph Backend [Backend & Search]
direction TB
Solr[Apache Solr]
API[samlingar-service]
end
subgraph External [External Services]
Media[Media Service<br/>media-service.nrm.se]
Assets[Assets Service<br/>assets.nrm.se]
end
subgraph Frontend [User Interface]
UI[samlingar-frontend]
end
CSVIndexer -->|2. Index| Solr
DBIndexer -->|2. Index| Solr
Solr -->|3. Search| API
API -->|4. Serve| UI
API -.->|Fetch Media| Media
API -.->|Fetch Media | Assets
- samlingar-csv-solr: A Java-based tool to read CSV files and index them into Solr.
- samlingar-specify-dwc: A Java tool to extract records from a Specify database and index them into Solr.
- Apache Solr: The core search engine providing full-text search, faceting, and filtering.
- samlingar-service: A Java RESTful API that acts as a secure abstraction layer over Solr, providing endpoints for the frontend.
- samlingar-frontend: A modern web application built with Vue 3 and Vite for searching and browsing the collections.
- Java 8+ (for Indexers and API)
- Node.js 16+ (for Frontend)
- Apache Solr 8.x
- Maven (to build Java projects)
Location: /samlingar-csv-solr
To run the CSV indexer:
cd samlingar-csv-solr
java -jar -Dswarm.collection="paleo" -Dswarm.delect.collection=true samlingar-data-process/target/csvToSolr-thorntail.jar -SinitdataLocation: /samlingar-specify-dwc
To run the Specify database indexer:
cd samlingar-specify-dwc
java -jar -Xms4096M -Xmx6144M -Dswarm.update=true specify-data-process/target/specifyToSolr-thorntail.jar -Sinitdata_entLocation: /samlingar_back/samlingar-service
To build and run the API:
cd samlingar_back/samlingar-service
# Build the project (if needed)
mvn clean package
# Run the service
java -jar samlingar-api/target/samlingarApi-thorntail.jar -SinitdataThe API will be available at: http://localhost:8080/
Location: /samlingar_frontend
To run the frontend in development mode:
cd samlingar_frontend
npm install # or yarn
npm run dev # or yarn devOpen your browser at: http://localhost:5173/
Ensure Apache Solr is running and configured with the appropriate schema for museum collections.
Features:
- Custom schema
- Faceted navigation
- Full-text search
Each component is designed to be containerized and directed via Docker or Kubernetes.
- Indexers: Scheduled as cron jobs or CI/CD pipelines.
- Solr: Dedicated container/cluster.
- API: Backend application container.
- Frontend: Static files served via Nginx or similar web server.