Frequently Asked Questions
What is Apache Solr Benchmark? Apache Solr Benchmark is a macro-benchmarking framework for Apache Solr clusters. It is a fork of OpenSearch Benchmark, adapted to work with Solr instead of OpenSearch.
What Solr versions are supported? Apache Solr Benchmark supports Solr 9.x and Solr 10.x. Some metrics collection endpoints differ between versions and are detected automatically at runtime.
Where can I find pre-built workloads? Pre-built workloads for Apache Solr Benchmark are available at https://github.com/janhoy/solr-benchmark-workloads.
How do I convert an OpenSearch Benchmark workload? Use the convert-workload command:
solr-benchmark convert-workload \
--workload-path /path/to/osb-workload \
--output-path /path/to/solr-workload
See Converter Tool for details on what gets converted automatically.
How is a collection different from an index? In Apache Solr, the equivalent of an OpenSearch index is a collection. A collection is a logical grouping of documents distributed across shards. See Glossary for a full terminology mapping.
Can I benchmark a multi-node Solr cluster? Yes. Pass multiple hosts to --target-hosts, separated by commas:
solr-benchmark run --target-hosts node1:8983,node2:8983,node3:8983 ...
What pipelines are available?
benchmark-only— run against an existing cluster (no provisioning)docker— start a Solr cluster via Docker, then benchmark, then tear downfrom-distribution— download and install Solr, then benchmark, then tear downfrom-sources— build Solr from source, install, benchmark, then tear down
How do I run in test mode? Pass --test-mode to limit the workload to a small subset of documents (at most 1,000) for quick validation:
solr-benchmark run --test-mode ...
Where are results stored? Results are stored as JSON and CSV files in ~/.solr-benchmark/results/ by default.
Does Apache Solr Benchmark support distributed (multi-machine) benchmarking? Yes. Use the daemon mode (solr-benchmarkd) on worker nodes and the coordinator on the driver node. See Working with Workloads for details.
What is --cluster-config for? The --cluster-config flag selects a preset JVM/GC configuration for provisioned Solr nodes (used with docker, from-distribution, and from-sources pipelines). It is not applicable to the benchmark-only pipeline. See Cluster Config for available presets.