diff --git a/backend/pom.xml b/backend/pom.xml
index c35c1100ff..674d572f4c 100644
--- a/backend/pom.xml
+++ b/backend/pom.xml
@@ -430,5 +430,10 @@
solr-solrj
10.0.0
+
+ org.apache.solr
+ solr-solrj-jetty
+ 10.0.0
+
diff --git a/backend/src/main/java/com/bakdata/conquery/models/config/search/solr/SolrConfig.java b/backend/src/main/java/com/bakdata/conquery/models/config/search/solr/SolrConfig.java
index 958e57cce5..7cd2c73658 100644
--- a/backend/src/main/java/com/bakdata/conquery/models/config/search/solr/SolrConfig.java
+++ b/backend/src/main/java/com/bakdata/conquery/models/config/search/solr/SolrConfig.java
@@ -15,9 +15,9 @@
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.apache.solr.client.solrj.SolrClient;
-import org.apache.solr.client.solrj.impl.ConcurrentUpdateHttp2SolrClient;
-import org.apache.solr.client.solrj.impl.Http2SolrClient;
import org.apache.solr.client.solrj.impl.HttpJdkSolrClient;
+import org.apache.solr.client.solrj.jetty.ConcurrentUpdateJettySolrClient;
+import org.apache.solr.client.solrj.jetty.HttpJettySolrClient;
import org.apache.solr.client.solrj.request.HealthCheckRequest;
import org.apache.solr.common.util.NamedList;
@@ -95,24 +95,24 @@ public SolrClient createSearchClient(@Nullable String collection) {
public SolrClient createIndexClient(@Nullable String collection) {
log.info("Creating solr index client. Base url: {}, Collection: {})", baseSolrUrl, collection);
- Http2SolrClient.Builder http2Builder = new Http2SolrClient.Builder(baseSolrUrl)
+ HttpJettySolrClient.Builder jettyBuilder = new HttpJettySolrClient.Builder(baseSolrUrl)
.withConnectionTimeout(connectionTimeout.toSeconds(), TimeUnit.SECONDS)
.withRequestTimeout(requestTimeout.toSeconds(), TimeUnit.SECONDS);
if (username != null) {
- http2Builder.withBasicAuthCredentials(username, password);
+ jettyBuilder.withBasicAuthCredentials(username, password);
}
if (useHttp1_1 != null) {
- http2Builder.useHttp1_1(useHttp1_1);
+ jettyBuilder.useHttp1_1(useHttp1_1);
}
- Http2SolrClient http2Client = http2Builder.build();
+ HttpJettySolrClient jettyClient = jettyBuilder.build();
- ConcurrentUpdateHttp2SolrClient.Builder concurrentClientBuilder = new ConcurrentUpdateHttp2SolrClient.Builder(baseSolrUrl, http2Client)
- .withDefaultCollection(collection)
- .withQueueSize(indexerClientQueueSize)
- .withThreadCount(indexerClientThreads);
+ ConcurrentUpdateJettySolrClient.Builder concurrentClientBuilder = new ConcurrentUpdateJettySolrClient.Builder(baseSolrUrl, jettyClient);
+ concurrentClientBuilder.withDefaultCollection(collection);
+ concurrentClientBuilder.withQueueSize(indexerClientQueueSize);
+ concurrentClientBuilder.withThreadCount(indexerClientThreads);
return concurrentClientBuilder.build();
diff --git a/backend/src/main/java/com/bakdata/conquery/util/search/solr/FilterValueIndexer.java b/backend/src/main/java/com/bakdata/conquery/util/search/solr/FilterValueIndexer.java
index 24cf8a6bf9..e11d230f8f 100644
--- a/backend/src/main/java/com/bakdata/conquery/util/search/solr/FilterValueIndexer.java
+++ b/backend/src/main/java/com/bakdata/conquery/util/search/solr/FilterValueIndexer.java
@@ -15,8 +15,8 @@
import com.bakdata.conquery.util.search.solr.entities.SolrFrontendValue;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
-import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServerException;
+import org.apache.solr.client.solrj.request.SolrQuery;
import org.apache.solr.client.solrj.response.QueryResponse;
diff --git a/backend/src/main/java/com/bakdata/conquery/util/search/solr/FilterValueSearch.java b/backend/src/main/java/com/bakdata/conquery/util/search/solr/FilterValueSearch.java
index 3160735400..ed3bf4e875 100644
--- a/backend/src/main/java/com/bakdata/conquery/util/search/solr/FilterValueSearch.java
+++ b/backend/src/main/java/com/bakdata/conquery/util/search/solr/FilterValueSearch.java
@@ -13,13 +13,14 @@
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.text.StringSubstitutor;
import org.apache.solr.client.solrj.SolrClient;
-import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrRequest;
import org.apache.solr.client.solrj.SolrServerException;
-import org.apache.solr.client.solrj.StreamingResponseCallback;
-import org.apache.solr.client.solrj.impl.StreamingBinaryResponseParser;
+import org.apache.solr.client.solrj.beans.DocumentObjectBinder;
import org.apache.solr.client.solrj.request.QueryRequest;
+import org.apache.solr.client.solrj.request.SolrQuery;
import org.apache.solr.client.solrj.response.QueryResponse;
+import org.apache.solr.client.solrj.response.StreamingJavaBinResponseParser;
+import org.apache.solr.client.solrj.response.StreamingResponseCallback;
import org.apache.solr.client.solrj.util.ClientUtils;
import org.apache.solr.common.SolrDocument;
import org.jetbrains.annotations.NotNull;
@@ -117,7 +118,7 @@ public AutoCompleteResult topItems(String text, Integer start, @Nullable Integer
final StreamingResponseCallback callback = new StreamingResponseCallback() {
@Override
public void streamSolrDocument(SolrDocument doc) {
- SolrFrontendValue bean = solrClient.getBinder().getBean(SolrFrontendValue.class, doc);
+ SolrFrontendValue bean = DocumentObjectBinder.INSTANCE.getBean(SolrFrontendValue.class, doc);
beans.add(bean.toFrontendValue());
}
@@ -128,7 +129,7 @@ public void streamDocListInfo(long numFoundCallBack, long start, Float maxScore)
};
final QueryRequest request = new QueryRequest(query, SolrRequest.METHOD.POST);
- request.setResponseParser(new StreamingBinaryResponseParser(callback));
+ request.setResponseParser(new StreamingJavaBinResponseParser(callback));
final QueryResponse response = request.process(solrClient);
log.debug("Query [{}] Found: {} | Collected: {} | QTime: {} | ElapsedTime: {}", queryHash, numFound.get(), beans.size(), response.getQTime(), response.getElapsedTime());
@@ -229,7 +230,7 @@ public void streamSolrDocument(SolrDocument doc) {
return;
}
- SolrFrontendValue bean = solrClient.getBinder().getBean(SolrFrontendValue.class, doc);
+ SolrFrontendValue bean = DocumentObjectBinder.INSTANCE.getBean(SolrFrontendValue.class, doc);
// Remove from unresolved and add to resolved values if either value or label matches
diff --git a/backend/src/test/java/com/bakdata/conquery/util/search/SolrFilterValueTest.java b/backend/src/test/java/com/bakdata/conquery/util/search/SolrFilterValueTest.java
index 9a147d837c..81bf5f4417 100644
--- a/backend/src/test/java/com/bakdata/conquery/util/search/SolrFilterValueTest.java
+++ b/backend/src/test/java/com/bakdata/conquery/util/search/SolrFilterValueTest.java
@@ -43,8 +43,8 @@
import io.dropwizard.core.setup.Environment;
import lombok.SneakyThrows;
import org.apache.solr.client.solrj.SolrClient;
-import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServerException;
+import org.apache.solr.client.solrj.request.SolrQuery;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.jetbrains.annotations.NotNull;
import org.junit.jupiter.api.BeforeAll;