updates for individuals via solr field options

This commit is contained in:
hudajkhan 2013-10-31 15:08:58 -04:00
parent 39d7818ba1
commit 15e0fc0e39
2 changed files with 23 additions and 22 deletions

View file

@ -3,7 +3,6 @@ package edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.fields;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -19,14 +18,9 @@ import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList; import org.apache.solr.common.SolrDocumentList;
import edu.cornell.mannlib.vitro.webapp.beans.Individual; 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.VitroVocabulary;
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory; 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.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.VitroSearchTermNames;
import edu.cornell.mannlib.vitro.webapp.search.solr.SolrSetup; 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 { public class IndividualsViaSolrQueryOptions extends IndividualsViaVClassOptions implements FieldOptions {
private Log log = LogFactory.getLog(IndividualsViaSolrQueryOptions.class); private Log log = LogFactory.getLog(IndividualsViaSolrQueryOptions.class);
public static final String LEFT_BLANK = "";
private List<String> vclassURIs;
private String defaultOptionLabel;
private ServletContext servletContext; private ServletContext servletContext;
public IndividualsViaSolrQueryOptions(ServletContext context, String ... vclassURIs) throws Exception { public IndividualsViaSolrQueryOptions(ServletContext context, String ... vclassURIs) throws Exception {
super(); super(vclassURIs);
this.servletContext = context; this.servletContext = context;
} }
@ -59,18 +50,28 @@ public class IndividualsViaSolrQueryOptions extends IndividualsViaVClassOptions
}else{ }else{
query.setQuery( VitroSearchTermNames.MOST_SPECIFIC_TYPE_URIS + ":" + vclassURI); 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); QueryResponse rsp = solrServer.query(query);
SolrDocumentList docs = rsp.getResults(); SolrDocumentList docs = rsp.getResults();
long found = docs.getNumFound(); long found = docs.getNumFound();
for (SolrDocument doc : docs) { if(found > 0) {
String uri = doc.get(VitroSearchTermNames.URI).toString(); for (SolrDocument doc : docs) {
Individual individual = wDaoFact.getIndividualDao().getIndividualByURI(uri); try {
if (individual == null) { String uri = doc.get(VitroSearchTermNames.URI).toString();
log.debug("No individual for search document with uri = " + uri); Individual individual = wDaoFact.getIndividualDao().getIndividualByURI(uri);
} else { if (individual == null) {
individualMap.put(individual.getURI(), individual); log.debug("No individual for search document with uri = " + uri);
log.debug("Adding individual " + uri + " to individual list"); } 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<String, Individual> individualMap = new HashMap<String, Individual>(); Map<String, Individual> individualMap = new HashMap<String, Individual>();
for( String vclassURI : this.vclassURIs){ for( String vclassURI : vclassURIs){
individualMap.putAll( getIndividualsForClass( vclassURI, wDaoFact) ); individualMap.putAll( getIndividualsForClass( vclassURI, wDaoFact) );
} }

View file

@ -18,8 +18,8 @@ import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTw
public class IndividualsViaVClassOptions implements FieldOptions { public class IndividualsViaVClassOptions implements FieldOptions {
public static final String LEFT_BLANK = ""; public static final String LEFT_BLANK = "";
private List<String> vclassURIs; protected List<String> vclassURIs;
private String defaultOptionLabel; protected String defaultOptionLabel;
public IndividualsViaVClassOptions(String ... vclassURIs) throws Exception { public IndividualsViaVClassOptions(String ... vclassURIs) throws Exception {
super(); super();