solrs - async solr client for java/scala

This is a java/scala solr client providing an interface like SolrJ, just asynchronously / non-blocking (built on top of async-http-client / netty).

The github repo is inoio/solrs, for questions please join the chat.

Key Features

  • Async, non-blocking API to Solr on the JVM: supports CompletableFuture for Java, for Scala you can choose between Twitter’s Future or the standard/SDK Future.
  • SolrCloud support
  • Optimized request routing (e.g. updates go to leaders, _route_ param is respected, replica.type is supported for shards.preference param)
  • Pluggable load balancing strategies, comes with a performance/statistics based load balancer
  • Support for retry policies in case of failures

Installation

Each solrs version is compatible with a certain Solr version:

  • Solr 9.4.x: solrs 2.11.x
  • Solr 9.3.x: solrs 2.10.x
  • Solr 9.2.x: solrs 2.8.x, 2.9.x
  • Solr 9.1.x: solrs 2.7.x
  • Solr 8.11.x: solrs 2.6.x
  • Solr 8.6.x: solrs 2.5.x
  • Solr 7.7.x: solrs 2.4.x
  • Solr 7.6.x: solrs 2.3.x
  • Solr 7.4.x: solrs 2.2.x
  • Solr 7.2.x: solrs 2.1.x
  • Solr 6.x.x: solrs 2.0.x

You must add the library to the dependencies of the build file:

sbt
libraryDependencies += "io.ino" % "solrs_2.13" % "2.11.1"
Maven
<dependencies>
  <dependency>
    <groupId>io.ino</groupId>
    <artifactId>solrs_2.13</artifactId>
    <version>2.11.1</version>
  </dependency>
</dependencies>
Gradle
dependencies {
  implementation "io.ino:solrs_2.13:2.11.1"
}

solrs is published to maven central for scala 2.11 (up to version 2.3.0), 2.12, 2.13 and 3.2 (since version 2.6.2) - search maven central for solrs.

License

This software is licensed under the Apache 2 license

The source code for this page can be found here.