If you’re following an existing tutorial to install Apache Solr on Ubuntu 22.04.3, there’s a good chance it’s already out of date in a way that will actually break your installation. Apache Solr 10.0 released in March 2026, and it requires Java 21 as a minimum, not Java 11, which every Solr 8.x and 9.x tutorial still online tells you to install, and which Ubuntu 22.04.3 ships with by default. Solr 8.x itself is now officially end-of-life. This guide covers the current, correct installation process for Solr 10 on Ubuntu 22.04.3, including the Java version trap that will otherwise cost you an hour of confused troubleshooting.
What’s Actually Changed in Solr 10
Before the steps, it’s worth knowing what’s different from the Solr 8/9 guides still ranking for this topic, per Solr’s own official upgrade documentation:
- Java 21 is required, up from Java 11 for Solr 9.x. This is the change most likely to break an installation following outdated instructions.
- The Solr CLI now uses Unix-style double-dash options (–help instead of -help), scripts and documentation referencing the old single-dash syntax need updating.
- Several environment variables were renamed: SOLR_JETTY_HOST is now SOLR_HOST_BIND, SOLR_HOST is now SOLR_HOST_ADVERTISE, and jetty.port is now solr.port.listen.
- Tika-based document extraction no longer runs in-process. If you need to index binary files (PDFs, Word documents), Solr 10 requires a separate Tika Server running alongside it, this guide covers text-based setup; binary extraction is a distinct, additional configuration step.
- SolrCloud now blocks rolling downgrades across major versions by default, a safeguard worth knowing about before you’re mid-upgrade.
Prerequisites
- A server or VM running Ubuntu 22.04.3 LTS
- A non-root user with sudo privileges
- At least 2GB of RAM (Solr’s default heap settings assume this as a practical minimum)
- Basic command-line familiarity
Step 1: Update Your System
sudo apt update && sudo apt upgrade -y
Run this first regardless of what you’re installing next, an outdated package index causes confusing, unrelated errors later in the process.
Step 2: Install Java 21
This is the step where following an older guide actually breaks things. Ubuntu 22.04.3’s default apt install default-jdk installs Java 11, which Solr 10 will refuse to run on. Install Java 21 explicitly:
sudo apt install openjdk-21-jdk -y
Verify the installation:
java -version
You should see output confirming version 21.x. If your system has multiple Java versions installed (common on servers that previously ran other Java applications), use sudo update-alternatives –config java to explicitly select Java 21 as the active version before proceeding, Solr will use whatever java resolves to by default, and a mismatched default is a common, confusing source of startup failures.
Step 3: Download Apache Solr 10
Check the official Apache Solr downloads page for the current exact version number before running this, since patch releases (10.0.1, 10.0.2, etc.) are expected over time:
wget https://dlcdn.apache.org/solr/solr/10.0.0/solr-10.0.0.tgz
Step 4: Extract and Run the Installation Script
tar xzf solr-10.0.0.tgz solr-10.0.0/bin/install_solr_service.sh –strip-components=2
sudo bash ./install_solr_service.sh solr-10.0.0.tgz
This installer script handles creating a dedicated solr system user, setting up the systemd service, and configuring Solr to start automatically on boot — meaningfully less manual work than extracting and configuring Solr entirely by hand.
Step 5: Verify Solr Is Running
sudo systemctl status solr
You should see an active (running) status. If it’s not running, check the logs directly:
sudo journalctl -u solr -n 50
Most startup failures at this stage trace back to the Java version mismatch covered in Step 2, if Solr fails to start, that’s the first thing to check.
Step 6: Access the Solr Admin Interface
With Solr running, the admin interface is available at:
http://your-server-ip:8983/solr/
If you’re accessing this remotely and it doesn’t load, check your firewall configuration:
sudo ufw allow 8983/tcp
Only open this port publicly if you genuinely need external access — for most production setups, the Solr admin interface should sit behind a reverse proxy or remain accessible only on an internal network, not exposed directly to the internet. Cloudflare Zero Trust is a genuinely solid option for restricting admin-interface access to authenticated devices only, rather than either fully opening the port or maintaining a traditional VPN just for this one purpose.
Step 7: Create Your First Collection
Solr organizes data into collections (or “cores” in standalone mode). Create one using the built-in command:
sudo su – solr -c “/opt/solr/bin/solr create -c mycollection”
Replace mycollection with a name relevant to your actual use case. Once created, you can confirm it exists by visiting the admin interface and selecting it from the Core/Collection Selector dropdown.
Configuring Solr for Real Use
Installation gets Solr running with sensible defaults. A few configuration steps matter before treating it as production-ready.
JVM heap size: Solr’s default heap allocation is conservative and often too small for real workloads. Edit /etc/default/solr.in.sh and set explicit minimum and maximum heap values:
SOLR_JAVA_MEM=”-Xms2g -Xmx4g”
Adjust these numbers to your actual available server memory, setting the maximum too close to total system RAM leaves nothing for the OS and other processes, which causes its own performance problems.
Logging configuration: Solr’s default logging is verbose enough to fill disk space over time on a busy server. The logging configuration lives in /var/solr/log4j2.xml (or the equivalent path for your installation), adjusting log rotation and retention here early avoids a full disk becoming an unplanned emergency later.
Schema configuration. For anything beyond the most basic use case, you’ll want to define an explicit schema rather than relying on Solr’s automatic field-guessing (schemaless mode), which works for quick testing but produces inconsistent, hard-to-query results as real data volume grows, the same data engineering discipline that applies to any structured data pipeline, not something unique to search specifically. Schema configuration happens through managed-schema.xml within your collection’s config set, or via the Schema API for changes without a restart.
Restarting after configuration changes:
sudo systemctl restart solr
Most configuration changes require a restart to take effect, verify the service comes back up cleanly with systemctl status solr after any change, rather than assuming it worked.
Common Mistakes
Installing Java 11 because an old tutorial said so: This is the single most common failure mode for a fresh Solr 10 installation right now, precisely because most existing guides haven’t been updated.
Not checking which Java version is actually active: A server with multiple JDKs installed can silently default to the wrong one even after installing Java 21 correctly.
Exposing the admin interface publicly without authentication: The Solr admin UI has no authentication enabled by default, leaving port 8983 open to the internet without additional access controls is a genuine, avoidable security risk.
Assuming binary document indexing works out of the box: Since Solr 10 no longer runs Tika in-process, indexing PDFs or Office documents requires setting up a separate Tika Server first, skipping this step means binary extraction will simply fail silently or error out.
The Bottom Line
Installing Apache Solr 10 on Ubuntu 22.04.3 is a straightforward process once you know about the Java 21 requirement, the detail that breaks almost every attempt following an older Solr 8 or 9 guide. Update your system, install Java 21 explicitly (not whatever default-jdk gives you), run the official installer script, and verify the service is actually running before troubleshooting further. The rest of the setup, creating collections, configuring search, is genuinely similar to previous Solr versions once the platform itself is running correctly.
When Search Infrastructure Needs to Scale
Getting Solr running on a single server is a good starting point. Running it reliably at production scale, SolrCloud clustering, replication, ongoing monitoring, and integrating it into a broader application architecture, is a different, ongoing engineering problem, related to the same database maintenance discipline and middleware and API integration considerations covered in our other technical guides. Automating Solr’s deployment and updates through a real CI/CD pipeline is also worth doing before this becomes a production dependency, rather than treating installation as a one-time manual task. If you’re building search into a real production system, that’s the kind of infrastructure work we do.
Frequently Asked Questions
What Java version does Apache Solr 10 require?Â
Java 21 or higher, confirmed directly in Solr’s official documentation, a significant increase from Java 11, which was sufficient for Solr 9.x.
Why won’t Solr start after I followed an older installation guide?Â
Almost always a Java version mismatch, older guides install Java 11, which Solr 10 doesn’t support. Installing and explicitly selecting Java 21 resolves this in most cases.
Is Apache Solr 10 compatible with Ubuntu 22.04.3?Â
Yes, provided Java 21 is installed explicitly, since it’s not Ubuntu 22.04.3’s default Java version. The rest of the installation process works the same as on other supported Ubuntu versions.
What’s the difference between a Solr core and a Solr collection?Â
A core is the standalone-mode unit of a single search index; a collection is the equivalent concept in SolrCloud’s distributed mode. For a single-server setup like this guide covers, the terms are functionally interchangeable in practice.
Do I need to configure a separate Tika Server for Solr 10?Â
Only if you’re indexing binary documents like PDFs or Word files. Solr 10 removed in-process Tika extraction, so binary document indexing now requires running Tika Server separately and pointing Solr at it.
Is it safe to expose the Solr admin interface to the internet?Â
No, not without additional access controls, the admin UI has no built-in authentication by default. Restrict access via firewall rules, a reverse proxy with authentication, or by keeping it on an internal network only.
How much memory should I allocate to Solr’s JVM heap?Â
It depends on your index size and query load, but a common starting point is 25-50% of available system RAM, leaving enough for the operating system’s file system cache, which Solr also relies on for performance. Start conservative and monitor actual usage before increasing it.
Should I use Solr’s automatic schema, or define one manually?Â
Automatic (schemaless) mode is fine for initial testing, but defining an explicit schema is worth doing before treating any deployment as production, inconsistent automatic field-type guessing tends to cause real query problems as data volume and variety grow.
