From 15e0fc0e39fd904e3932c7cb67e73f60eed13acc Mon Sep 17 00:00:00 2001 From: hudajkhan Date: Thu, 31 Oct 2013 15:08:58 -0400 Subject: [PATCH] updates for individuals via solr field options --- .../IndividualsViaSolrQueryOptions.java | 41 ++++++++++--------- .../fields/IndividualsViaVClassOptions.java | 4 +- 2 files changed, 23 insertions(+), 22 deletions(-) diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/VTwo/fields/IndividualsViaSolrQueryOptions.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/VTwo/fields/IndividualsViaSolrQueryOptions.java index 7108ae803..fc9527297 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/VTwo/fields/IndividualsViaSolrQueryOptions.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/VTwo/fields/IndividualsViaSolrQueryOptions.java @@ -3,7 +3,6 @@ package edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields; import java.util.ArrayList; import java.util.Collections; -import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -19,14 +18,9 @@ import org.apache.solr.common.SolrDocument; import org.apache.solr.common.SolrDocumentList; import edu.cornell.mannlib.vitro.webapp.beans.Individual; -import edu.cornell.mannlib.vitro.webapp.beans.VClass; -import edu.cornell.mannlib.vitro.webapp.dao.IndividualDao; import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary; import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory; -import edu.cornell.mannlib.vitro.webapp.dao.jena.WebappDaoFactoryJena; -import edu.cornell.mannlib.vitro.webapp.dao.jena.pellet.PelletListener; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTwo; -import edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.generators.DefaultObjectPropertyFormGenerator; import edu.cornell.mannlib.vitro.webapp.search.VitroSearchTermNames; import edu.cornell.mannlib.vitro.webapp.search.solr.SolrSetup; @@ -37,12 +31,9 @@ import edu.cornell.mannlib.vitro.webapp.search.solr.SolrSetup; public class IndividualsViaSolrQueryOptions extends IndividualsViaVClassOptions implements FieldOptions { private Log log = LogFactory.getLog(IndividualsViaSolrQueryOptions.class); - public static final String LEFT_BLANK = ""; - private List vclassURIs; - private String defaultOptionLabel; private ServletContext servletContext; public IndividualsViaSolrQueryOptions(ServletContext context, String ... vclassURIs) throws Exception { - super(); + super(vclassURIs); this.servletContext = context; } @@ -59,18 +50,28 @@ public class IndividualsViaSolrQueryOptions extends IndividualsViaVClassOptions }else{ query.setQuery( VitroSearchTermNames.MOST_SPECIFIC_TYPE_URIS + ":" + vclassURI); } - query.setRows(0); + query.setStart(0) + .setRows(1000); + query.setFields(VitroSearchTermNames.URI); // fields to retrieve + QueryResponse rsp = solrServer.query(query); SolrDocumentList docs = rsp.getResults(); long found = docs.getNumFound(); - for (SolrDocument doc : docs) { - String uri = doc.get(VitroSearchTermNames.URI).toString(); - Individual individual = wDaoFact.getIndividualDao().getIndividualByURI(uri); - if (individual == null) { - log.debug("No individual for search document with uri = " + uri); - } else { - individualMap.put(individual.getURI(), individual); - log.debug("Adding individual " + uri + " to individual list"); + if(found > 0) { + for (SolrDocument doc : docs) { + try { + String uri = doc.get(VitroSearchTermNames.URI).toString(); + Individual individual = wDaoFact.getIndividualDao().getIndividualByURI(uri); + if (individual == null) { + log.debug("No individual for search document with uri = " + uri); + } else { + individualMap.put(individual.getURI(), individual); + log.debug("Adding individual " + uri + " to individual list"); + } + } + catch(Exception ex) { + log.error("An error occurred retrieving the individual solr query resutls", ex); + } } } @@ -88,7 +89,7 @@ public class IndividualsViaSolrQueryOptions extends IndividualsViaVClassOptions Map individualMap = new HashMap(); - for( String vclassURI : this.vclassURIs){ + for( String vclassURI : vclassURIs){ individualMap.putAll( getIndividualsForClass( vclassURI, wDaoFact) ); } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/VTwo/fields/IndividualsViaVClassOptions.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/VTwo/fields/IndividualsViaVClassOptions.java index cebc7d23e..741624e5a 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/VTwo/fields/IndividualsViaVClassOptions.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/VTwo/fields/IndividualsViaVClassOptions.java @@ -18,8 +18,8 @@ import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTw public class IndividualsViaVClassOptions implements FieldOptions { public static final String LEFT_BLANK = ""; - private List vclassURIs; - private String defaultOptionLabel; + protected List vclassURIs; + protected String defaultOptionLabel; public IndividualsViaVClassOptions(String ... vclassURIs) throws Exception { super();