Skip to content

Commit

Permalink
supporting solr 6.4.2 #4158
Browse files Browse the repository at this point in the history
It looks like 7.1 is not much more work, but this is the lowest bar to start with.
  • Loading branch information
matthew-a-dunlap committed Oct 23, 2017
1 parent e2682d1 commit 2524928
Show file tree
Hide file tree
Showing 7 changed files with 81 additions and 36 deletions.
8 changes: 4 additions & 4 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -196,14 +196,14 @@
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-solrj</artifactId>
<version>4.6.0</version>
<version>6.4.2</version>
</dependency>
<dependency>
<!-- required by Solr... prevents java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory -->
<!-- <dependency>
required by Solr... prevents java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.3</version>
</dependency>
</dependency>-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-math</artifactId>
Expand Down
16 changes: 11 additions & 5 deletions src/main/java/edu/harvard/iq/dataverse/AutoCompleteBean.java
Original file line number Diff line number Diff line change
@@ -1,15 +1,18 @@
package edu.harvard.iq.dataverse;

import edu.harvard.iq.dataverse.util.SystemConfig;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Logger;
import javax.ejb.EJB;
import javax.inject.Named;
import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServer;
//import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
//import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.client.solrj.response.TermsResponse;
import org.apache.solr.client.solrj.response.TermsResponse.Term;
Expand All @@ -25,11 +28,12 @@ public class AutoCompleteBean implements java.io.Serializable {
@EJB
SystemConfig systemConfig;

private static SolrServer solrServer;
private static SolrClient solrServer;

public SolrServer getSolrServer(){
public SolrClient getSolrServer(){
if(solrServer == null){
solrServer = new HttpSolrServer("http://" + systemConfig.getSolrHostColonPort() + "/solr");
String urlString = "http://" + systemConfig.getSolrHostColonPort() + "/solr";
solrServer = new HttpSolrClient.Builder(urlString).build();
}
return solrServer;
}
Expand Down Expand Up @@ -59,6 +63,8 @@ public List<String> complete(String query) {
// items = resp.getTerms(solrFieldDatasetFieldDescription);
} catch (SolrServerException e) {
items = null;
} catch (IOException e) {
logger.warning("Solr query error: " + e);
}

if (items != null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,14 @@
import javax.inject.Named;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServer;
//import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.impl.HttpSolrServer.RemoteSolrException;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.client.solrj.impl.HttpSolrClient.RemoteSolrException;
//import org.apache.solr.client.solrj.impl.HttpSolrServer;
//import org.apache.solr.client.solrj.impl.HttpSolrServer.RemoteSolrException;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
Expand Down Expand Up @@ -115,12 +118,13 @@ public OAISet findById(Long id) {
return em.find(OAISet.class,id);
}

private SolrServer solrServer = null;
private SolrClient solrServer = null;

private SolrServer getSolrServer () {
private SolrClient getSolrServer () {
if (solrServer == null) {
}
solrServer = new HttpSolrServer("http://" + systemConfig.getSolrHostColonPort() + "/solr");
String urlString = "http://" + systemConfig.getSolrHostColonPort() + "/solr";
solrServer = new HttpSolrClient.Builder(urlString).build();

return solrServer;

Expand Down Expand Up @@ -266,6 +270,8 @@ public List<Long> expandSetQuery(String query) throws OaiSetException {
} catch (SolrServerException ex) {
logger.fine("Internal Dataverse Search Engine Error");
throw new OaiSetException("Internal Dataverse Search Engine Error");
} catch (IOException e) {
logger.warning("Solr query error: " + e);
}

SolrDocumentList docs = queryResponse.getResults();
Expand Down
9 changes: 5 additions & 4 deletions src/main/java/edu/harvard/iq/dataverse/search/BatchIndex.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@
import java.util.ArrayList;
import java.util.Collection;
import java.util.logging.Logger;
import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.SolrClient;
//import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.common.SolrInputDocument;

Expand All @@ -21,10 +22,10 @@ public class BatchIndex {
private static final Logger logger = Logger.getLogger(BatchIndex.class.getCanonicalName());
private Collection<SolrInputDocument> docs;
long batchsize;
private SolrServer server;
private SolrClient server;


public BatchIndex(long size, SolrServer serv){
public BatchIndex(long size, SolrClient serv){
batchsize = size;
docs = new ArrayList<>();
server = serv;
Expand Down Expand Up @@ -75,7 +76,7 @@ public void setDocs(Collection<SolrInputDocument> docs) {
/**
* @return the server
*/
public SolrServer getServer() {
public SolrClient getServer() {
return server;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,10 +51,12 @@
import static javax.ejb.TransactionAttributeType.REQUIRES_NEW;
import javax.inject.Named;
import org.apache.commons.lang.StringUtils;
import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServer;
//import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
//import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.client.solrj.response.UpdateResponse;
import org.apache.solr.common.SolrDocument;
Expand Down Expand Up @@ -108,18 +110,24 @@ public class IndexServiceBean {
public static final String HARVESTED = "Harvested";
private String rootDataverseName;
private Dataverse rootDataverseCached;
private SolrServer solrServer;
private SolrClient solrServer;

@PostConstruct
public void init(){
solrServer = new HttpSolrServer("http://" + systemConfig.getSolrHostColonPort() + "/solr");
String urlString = "http://" + systemConfig.getSolrHostColonPort() + "/solr";
solrServer = new HttpSolrClient.Builder(urlString).build();

rootDataverseName = findRootDataverseCached().getName();
}

@PreDestroy
public void close(){
if(solrServer != null){
solrServer.shutdown();
try {
solrServer.close();
} catch (IOException e) {
logger.warning("Solr closing error: " + e);
}
solrServer = null;
}
}
Expand Down Expand Up @@ -1387,6 +1395,8 @@ private List<Long> findDvObjectInSolrOnly(String type) throws SearchException {
queryResponse = solrServer.query(solrQuery);
} catch (SolrServerException ex) {
throw new SearchException("Error searching Solr for " + type, ex);
} catch (IOException e) {
logger.warning("Solr query error: " + e);
}
SolrDocumentList results = queryResponse.getResults();
for (SolrDocument solrDocument : results) {
Expand Down Expand Up @@ -1421,6 +1431,8 @@ private List<String> findFilesOfParentDataset(long parentDatasetId) throws Searc
queryResponse = solrServer.query(solrQuery);
} catch (SolrServerException ex) {
throw new SearchException("Error searching Solr for dataset parent id " + parentDatasetId, ex);
} catch (IOException e) {
logger.warning("Solr query error: " + e);
}
SolrDocumentList results = queryResponse.getResults();
for (SolrDocument solrDocument : results) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import edu.harvard.iq.dataverse.engine.command.DataverseRequest;
import edu.harvard.iq.dataverse.util.JsfHelper;
import edu.harvard.iq.dataverse.util.SystemConfig;
import java.io.IOException;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Arrays;
Expand All @@ -42,12 +43,15 @@
import javax.ejb.TransactionRolledbackLocalException;
import javax.inject.Named;
import javax.persistence.NoResultException;
import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrQuery.SortClause;
import org.apache.solr.client.solrj.SolrServer;
//import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.impl.HttpSolrServer.RemoteSolrException;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.client.solrj.impl.HttpSolrClient.RemoteSolrException;
//import org.apache.solr.client.solrj.impl.HttpSolrServer;
//import org.apache.solr.client.solrj.impl.HttpSolrServer.RemoteSolrException;
import org.apache.solr.client.solrj.response.FacetField;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.client.solrj.response.RangeFacet;
Expand Down Expand Up @@ -80,17 +84,22 @@ public class SearchServiceBean {
SystemConfig systemConfig;

public static final JsfHelper JH = new JsfHelper();
private SolrServer solrServer;
private SolrClient solrServer;

@PostConstruct
public void init(){
solrServer = new HttpSolrServer("http://" + systemConfig.getSolrHostColonPort() + "/solr");
String urlString = "http://" + systemConfig.getSolrHostColonPort() + "/solr";
solrServer = new HttpSolrClient.Builder(urlString).build();
}

@PreDestroy
public void close(){
if(solrServer != null){
solrServer.shutdown();
try {
solrServer.close();
} catch (IOException e) {
logger.warning("Solr closing error: " + e);
}
solrServer = null;
}
}
Expand Down Expand Up @@ -301,7 +310,7 @@ public SolrQueryResponse search(DataverseRequest dataverseRequest, Dataverse dat
// -----------------------------------
// Make the solr query
// -----------------------------------
QueryResponse queryResponse;
QueryResponse queryResponse = null;
try {
queryResponse = solrServer.query(solrQuery);
} catch (RemoteSolrException ex) {
Expand Down Expand Up @@ -333,6 +342,8 @@ public SolrQueryResponse search(DataverseRequest dataverseRequest, Dataverse dat
return exceptionSolrQueryResponse;
} catch (SolrServerException ex) {
throw new SearchException("Internal Dataverse Search Engine Error", ex);
} catch (IOException e) {
logger.warning("Solr query error: " + e);
}

SolrDocumentList docs = queryResponse.getResults();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,11 @@
import javax.inject.Named;
import javax.json.Json;
import javax.json.JsonObjectBuilder;
import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.SolrClient;
//import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
//import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.response.UpdateResponse;
import org.apache.solr.common.SolrInputDocument;

Expand All @@ -57,17 +59,24 @@ public class SolrIndexServiceBean {

public static String numRowsClearedByClearAllIndexTimes = "numRowsClearedByClearAllIndexTimes";
public static String messageString = "message";
private SolrServer solrServer;
private SolrClient solrServer;

@PostConstruct
public void init(){
solrServer = new HttpSolrServer("http://" + systemConfig.getSolrHostColonPort() + "/solr");
String urlString = "http://" + systemConfig.getSolrHostColonPort() + "/solr";
solrServer = new HttpSolrClient.Builder(urlString).build();

}

@PreDestroy
public void close(){
if(solrServer != null){
solrServer.shutdown();
try {
solrServer.close();
} catch (IOException e) {
logger.warning("Solr closing error: " + e);
}

solrServer = null;
}
}
Expand Down

0 comments on commit 2524928

Please sign in to comment.