Adding interface for ClassProhibitedFromSearch and IndividualProhibitedFromSearch.
This commit is contained in:
parent
d4559a2496
commit
74a5b665cb
13 changed files with 105 additions and 100 deletions
|
@ -780,7 +780,7 @@ public class IndividualJena extends IndividualImpl implements Individual {
|
||||||
Statement stmt = stmtIt.nextStatement();
|
Statement stmt = stmtIt.nextStatement();
|
||||||
if (stmt.getObject().isURIResource()) {
|
if (stmt.getObject().isURIResource()) {
|
||||||
String typeURI = ((Resource)stmt.getObject()).getURI();
|
String typeURI = ((Resource)stmt.getObject()).getURI();
|
||||||
if (pfs.isClassProhibited(typeURI)) {
|
if (pfs.isClassProhibitedFromSearch(typeURI)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1088,7 +1088,7 @@ public class IndividualSDB extends IndividualImpl implements Individual {
|
||||||
|
|
||||||
while(itr.hasNext()) {
|
while(itr.hasNext()) {
|
||||||
String typeURI = itr.next().getURI();
|
String typeURI = itr.next().getURI();
|
||||||
if (pfs.isClassProhibited(typeURI)) {
|
if (pfs.isClassProhibitedFromSearch(typeURI)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -324,7 +324,7 @@ public class VClassGroupDaoJena extends JenaBaseDao implements VClassGroupDao {
|
||||||
for (VClassGroup group : groups) {
|
for (VClassGroup group : groups) {
|
||||||
List<VClass> classList = new ArrayList<VClass>();
|
List<VClass> classList = new ArrayList<VClass>();
|
||||||
for (VClass vclass : group.getVitroClassList()) {
|
for (VClass vclass : group.getVitroClassList()) {
|
||||||
if (!pfs.isClassProhibited(vclass.getURI())) {
|
if (!pfs.isClassProhibitedFromSearch(vclass.getURI())) {
|
||||||
classList.add(vclass);
|
classList.add(vclass);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
package edu.cornell.mannlib.vitro.webapp.search.beans;
|
||||||
|
|
||||||
|
public interface ClassProhibitedFromSearch {
|
||||||
|
public boolean isClassProhibitedFromSearch(String classUri);
|
||||||
|
}
|
|
@ -1,66 +1,5 @@
|
||||||
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
|
|
||||||
|
|
||||||
package edu.cornell.mannlib.vitro.webapp.search.beans;
|
package edu.cornell.mannlib.vitro.webapp.search.beans;
|
||||||
|
|
||||||
import javax.servlet.ServletContext;
|
public interface IndividualProhibitedFromSearch {
|
||||||
|
public boolean isIndividualProhibited(String uri);
|
||||||
import org.apache.commons.logging.Log;
|
|
||||||
import org.apache.commons.logging.LogFactory;
|
|
||||||
|
|
||||||
import com.hp.hpl.jena.ontology.OntModel;
|
|
||||||
import com.hp.hpl.jena.query.Query;
|
|
||||||
import com.hp.hpl.jena.query.QueryExecutionFactory;
|
|
||||||
import com.hp.hpl.jena.query.QueryFactory;
|
|
||||||
import com.hp.hpl.jena.shared.Lock;
|
|
||||||
import com.hp.hpl.jena.vocabulary.OWL;
|
|
||||||
import com.hp.hpl.jena.vocabulary.RDF;
|
|
||||||
|
|
||||||
import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary;
|
|
||||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.ModelContext;
|
|
||||||
|
|
||||||
public class IndividualProhibitedFromSearch {
|
|
||||||
|
|
||||||
protected OntModel fullModel;
|
|
||||||
|
|
||||||
protected static Log log = LogFactory.getLog(IndividualProhibitedFromSearch.class);
|
|
||||||
|
|
||||||
public IndividualProhibitedFromSearch( ServletContext context ){
|
|
||||||
this.fullModel = ModelContext.getUnionOntModelSelector(context).getFullModel();
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isIndividualProhibited(String uri){
|
|
||||||
if( uri == null || uri.isEmpty() )
|
|
||||||
return true;
|
|
||||||
|
|
||||||
boolean prohibited = false;
|
|
||||||
try {
|
|
||||||
fullModel.getLock().enterCriticalSection(Lock.READ);
|
|
||||||
Query query = makeAskQueryForUri( uri );
|
|
||||||
prohibited = QueryExecutionFactory.create( query, fullModel).execAsk();
|
|
||||||
} finally {
|
|
||||||
fullModel.getLock().leaveCriticalSection();
|
|
||||||
}
|
|
||||||
if( prohibited )
|
|
||||||
log.debug("prohibited " + uri);
|
|
||||||
|
|
||||||
return prohibited;
|
|
||||||
}
|
|
||||||
|
|
||||||
private Query makeAskQueryForUri( String uri ){
|
|
||||||
String queryString =
|
|
||||||
"PREFIX fn: <http://www.w3.org/2005/xpath-functions#> \n" +
|
|
||||||
"ASK { \n" +
|
|
||||||
" <"+uri+"> <" + RDF.type.getURI() + "> ?type . \n" +
|
|
||||||
" FILTER ( \n" +
|
|
||||||
" ( fn:starts-with( str(?type), \"" + VitroVocabulary.vitroURI + "\" ) \n" +
|
|
||||||
" && \n"+
|
|
||||||
" ! fn:starts-with( str(?type), \"" + VitroVocabulary.vitroURI + "Flag\" ) ) || \n" +
|
|
||||||
" fn:starts-with( str(?type), \"" + VitroVocabulary.PUBLIC + "\" ) || \n" +
|
|
||||||
" str(?type) = \"" + OWL.ObjectProperty.getURI() + "\" || \n" +
|
|
||||||
" str(?type) = \"" + OWL.DatatypeProperty.getURI() + "\" || \n" +
|
|
||||||
" str(?type) = \"" + OWL.AnnotationProperty.getURI() + "\" \n" +
|
|
||||||
" )\n" +
|
|
||||||
"}" ;
|
|
||||||
return QueryFactory.create( queryString );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,66 @@
|
||||||
|
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
|
||||||
|
|
||||||
|
package edu.cornell.mannlib.vitro.webapp.search.beans;
|
||||||
|
|
||||||
|
import javax.servlet.ServletContext;
|
||||||
|
|
||||||
|
import org.apache.commons.logging.Log;
|
||||||
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
|
||||||
|
import com.hp.hpl.jena.ontology.OntModel;
|
||||||
|
import com.hp.hpl.jena.query.Query;
|
||||||
|
import com.hp.hpl.jena.query.QueryExecutionFactory;
|
||||||
|
import com.hp.hpl.jena.query.QueryFactory;
|
||||||
|
import com.hp.hpl.jena.shared.Lock;
|
||||||
|
import com.hp.hpl.jena.vocabulary.OWL;
|
||||||
|
import com.hp.hpl.jena.vocabulary.RDF;
|
||||||
|
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.dao.jena.ModelContext;
|
||||||
|
|
||||||
|
public class IndividualProhibitedFromSearchImpl implements IndividualProhibitedFromSearch {
|
||||||
|
|
||||||
|
protected OntModel fullModel;
|
||||||
|
|
||||||
|
protected static Log log = LogFactory.getLog(IndividualProhibitedFromSearchImpl.class);
|
||||||
|
|
||||||
|
public IndividualProhibitedFromSearchImpl( ServletContext context ){
|
||||||
|
this.fullModel = ModelContext.getUnionOntModelSelector(context).getFullModel();
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isIndividualProhibited(String uri){
|
||||||
|
if( uri == null || uri.isEmpty() )
|
||||||
|
return true;
|
||||||
|
|
||||||
|
boolean prohibited = false;
|
||||||
|
try {
|
||||||
|
fullModel.getLock().enterCriticalSection(Lock.READ);
|
||||||
|
Query query = makeAskQueryForUri( uri );
|
||||||
|
prohibited = QueryExecutionFactory.create( query, fullModel).execAsk();
|
||||||
|
} finally {
|
||||||
|
fullModel.getLock().leaveCriticalSection();
|
||||||
|
}
|
||||||
|
if( prohibited )
|
||||||
|
log.debug("prohibited " + uri);
|
||||||
|
|
||||||
|
return prohibited;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Query makeAskQueryForUri( String uri ){
|
||||||
|
String queryString =
|
||||||
|
"PREFIX fn: <http://www.w3.org/2005/xpath-functions#> \n" +
|
||||||
|
"ASK { \n" +
|
||||||
|
" <"+uri+"> <" + RDF.type.getURI() + "> ?type . \n" +
|
||||||
|
" FILTER ( \n" +
|
||||||
|
" ( fn:starts-with( str(?type), \"" + VitroVocabulary.vitroURI + "\" ) \n" +
|
||||||
|
" && \n"+
|
||||||
|
" ! fn:starts-with( str(?type), \"" + VitroVocabulary.vitroURI + "Flag\" ) ) || \n" +
|
||||||
|
" fn:starts-with( str(?type), \"" + VitroVocabulary.PUBLIC + "\" ) || \n" +
|
||||||
|
" str(?type) = \"" + OWL.ObjectProperty.getURI() + "\" || \n" +
|
||||||
|
" str(?type) = \"" + OWL.DatatypeProperty.getURI() + "\" || \n" +
|
||||||
|
" str(?type) = \"" + OWL.AnnotationProperty.getURI() + "\" \n" +
|
||||||
|
" )\n" +
|
||||||
|
"}" ;
|
||||||
|
return QueryFactory.create( queryString );
|
||||||
|
}
|
||||||
|
}
|
|
@ -25,7 +25,7 @@ import com.hp.hpl.jena.shared.Lock;
|
||||||
|
|
||||||
import edu.cornell.mannlib.vitro.webapp.dao.DisplayVocabulary;
|
import edu.cornell.mannlib.vitro.webapp.dao.DisplayVocabulary;
|
||||||
|
|
||||||
public class ProhibitedFromSearch {
|
public class ProhibitedFromSearch implements ClassProhibitedFromSearch{
|
||||||
List<String> prohibitedClasses;
|
List<String> prohibitedClasses;
|
||||||
String ProhibitedFromSearchURI;
|
String ProhibitedFromSearchURI;
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@ public class ProhibitedFromSearch {
|
||||||
model.register(new ProhibitedFromSearchChangeListener( this ));
|
model.register(new ProhibitedFromSearchChangeListener( this ));
|
||||||
}
|
}
|
||||||
|
|
||||||
public synchronized boolean isClassProhibited(String classURI){
|
public synchronized boolean isClassProhibitedFromSearch(String classURI){
|
||||||
if( classURI != null ){
|
if( classURI != null ){
|
||||||
boolean p = prohibitedClasses.contains(classURI);
|
boolean p = prohibitedClasses.contains(classURI);
|
||||||
log.debug( classURI + " is " + (p?"prohibited":"not prohibited"));
|
log.debug( classURI + " is " + (p?"prohibited":"not prohibited"));
|
||||||
|
|
|
@ -171,7 +171,7 @@ public class Entity2LuceneDoc implements Obj2DocIface{
|
||||||
log.debug("not indexing " + id + " because of type " + clz.getURI());
|
log.debug("not indexing " + id + " because of type " + clz.getURI());
|
||||||
return null;
|
return null;
|
||||||
}else{
|
}else{
|
||||||
if( !prohibited && classesProhibitedFromSearch.isClassProhibited(clz.getURI()) )
|
if( !prohibited && classesProhibitedFromSearch.isClassProhibitedFromSearch(clz.getURI()) )
|
||||||
prohibited = true;
|
prohibited = true;
|
||||||
|
|
||||||
if( clz.getSearchBoost() != null )
|
if( clz.getSearchBoost() != null )
|
||||||
|
|
|
@ -6,11 +6,11 @@ import static edu.cornell.mannlib.vitro.webapp.search.lucene.Entity2LuceneDoc.Vi
|
||||||
import static edu.cornell.mannlib.vitro.webapp.search.lucene.Entity2LuceneDoc.VitroLuceneTermNames.ALLTEXTUNSTEMMED;
|
import static edu.cornell.mannlib.vitro.webapp.search.lucene.Entity2LuceneDoc.VitroLuceneTermNames.ALLTEXTUNSTEMMED;
|
||||||
import static edu.cornell.mannlib.vitro.webapp.search.lucene.Entity2LuceneDoc.VitroLuceneTermNames.CLASSLOCALNAME;
|
import static edu.cornell.mannlib.vitro.webapp.search.lucene.Entity2LuceneDoc.VitroLuceneTermNames.CLASSLOCALNAME;
|
||||||
import static edu.cornell.mannlib.vitro.webapp.search.lucene.Entity2LuceneDoc.VitroLuceneTermNames.CLASSLOCALNAMELOWERCASE;
|
import static edu.cornell.mannlib.vitro.webapp.search.lucene.Entity2LuceneDoc.VitroLuceneTermNames.CLASSLOCALNAMELOWERCASE;
|
||||||
|
import static edu.cornell.mannlib.vitro.webapp.search.lucene.Entity2LuceneDoc.VitroLuceneTermNames.CONTEXTNODE;
|
||||||
import static edu.cornell.mannlib.vitro.webapp.search.lucene.Entity2LuceneDoc.VitroLuceneTermNames.MONIKER;
|
import static edu.cornell.mannlib.vitro.webapp.search.lucene.Entity2LuceneDoc.VitroLuceneTermNames.MONIKER;
|
||||||
import static edu.cornell.mannlib.vitro.webapp.search.lucene.Entity2LuceneDoc.VitroLuceneTermNames.NAME_STEMMED;
|
import static edu.cornell.mannlib.vitro.webapp.search.lucene.Entity2LuceneDoc.VitroLuceneTermNames.NAME_STEMMED;
|
||||||
import static edu.cornell.mannlib.vitro.webapp.search.lucene.Entity2LuceneDoc.VitroLuceneTermNames.NAME_UNSTEMMED;
|
import static edu.cornell.mannlib.vitro.webapp.search.lucene.Entity2LuceneDoc.VitroLuceneTermNames.NAME_UNSTEMMED;
|
||||||
import static edu.cornell.mannlib.vitro.webapp.search.lucene.Entity2LuceneDoc.VitroLuceneTermNames.RDFTYPE;
|
import static edu.cornell.mannlib.vitro.webapp.search.lucene.Entity2LuceneDoc.VitroLuceneTermNames.RDFTYPE;
|
||||||
import static edu.cornell.mannlib.vitro.webapp.search.lucene.Entity2LuceneDoc.VitroLuceneTermNames.CONTEXTNODE;
|
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
@ -39,10 +39,9 @@ import edu.cornell.mannlib.vitro.webapp.dao.filtering.filters.VitroFilterUtils;
|
||||||
import edu.cornell.mannlib.vitro.webapp.dao.filtering.filters.VitroFilters;
|
import edu.cornell.mannlib.vitro.webapp.dao.filtering.filters.VitroFilters;
|
||||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.ModelContext;
|
import edu.cornell.mannlib.vitro.webapp.dao.jena.ModelContext;
|
||||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.SearchReindexingListener;
|
import edu.cornell.mannlib.vitro.webapp.dao.jena.SearchReindexingListener;
|
||||||
import edu.cornell.mannlib.vitro.webapp.search.beans.IndividualProhibitedFromSearch;
|
import edu.cornell.mannlib.vitro.webapp.search.beans.IndividualProhibitedFromSearchImpl;
|
||||||
import edu.cornell.mannlib.vitro.webapp.search.beans.ObjectSourceIface;
|
import edu.cornell.mannlib.vitro.webapp.search.beans.ObjectSourceIface;
|
||||||
import edu.cornell.mannlib.vitro.webapp.search.beans.ProhibitedFromSearch;
|
import edu.cornell.mannlib.vitro.webapp.search.beans.ProhibitedFromSearch;
|
||||||
|
|
||||||
import edu.cornell.mannlib.vitro.webapp.search.indexing.IndexBuilder;
|
import edu.cornell.mannlib.vitro.webapp.search.indexing.IndexBuilder;
|
||||||
import edu.cornell.mannlib.vitro.webapp.servlet.setup.AbortStartup;
|
import edu.cornell.mannlib.vitro.webapp.servlet.setup.AbortStartup;
|
||||||
|
|
||||||
|
@ -119,7 +118,7 @@ public class LuceneSetup implements javax.servlet.ServletContextListener {
|
||||||
OntModel displayOntModel = (OntModel) sce.getServletContext().getAttribute("displayOntModel");
|
OntModel displayOntModel = (OntModel) sce.getServletContext().getAttribute("displayOntModel");
|
||||||
Entity2LuceneDoc translator = new Entity2LuceneDoc(
|
Entity2LuceneDoc translator = new Entity2LuceneDoc(
|
||||||
new ProhibitedFromSearch(DisplayVocabulary.PRIMARY_LUCENE_INDEX_URI, displayOntModel),
|
new ProhibitedFromSearch(DisplayVocabulary.PRIMARY_LUCENE_INDEX_URI, displayOntModel),
|
||||||
new IndividualProhibitedFromSearch(context)
|
new IndividualProhibitedFromSearchImpl(context)
|
||||||
|
|
||||||
);
|
);
|
||||||
indexer.addObj2Doc(translator);
|
indexer.addObj2Doc(translator);
|
||||||
|
|
|
@ -27,7 +27,7 @@ import edu.cornell.mannlib.vitro.webapp.dao.filtering.filters.VitroFilterUtils;
|
||||||
import edu.cornell.mannlib.vitro.webapp.dao.filtering.filters.VitroFilters;
|
import edu.cornell.mannlib.vitro.webapp.dao.filtering.filters.VitroFilters;
|
||||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.ModelContext;
|
import edu.cornell.mannlib.vitro.webapp.dao.jena.ModelContext;
|
||||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.SearchReindexingListener;
|
import edu.cornell.mannlib.vitro.webapp.dao.jena.SearchReindexingListener;
|
||||||
import edu.cornell.mannlib.vitro.webapp.search.beans.IndividualProhibitedFromSearch;
|
import edu.cornell.mannlib.vitro.webapp.search.beans.IndividualProhibitedFromSearchImpl;
|
||||||
import edu.cornell.mannlib.vitro.webapp.search.beans.ProhibitedFromSearch;
|
import edu.cornell.mannlib.vitro.webapp.search.beans.ProhibitedFromSearch;
|
||||||
import edu.cornell.mannlib.vitro.webapp.search.indexing.IndexBuilder;
|
import edu.cornell.mannlib.vitro.webapp.search.indexing.IndexBuilder;
|
||||||
|
|
||||||
|
@ -92,7 +92,7 @@ public class LuceneSetupCJK implements javax.servlet.ServletContextListener {
|
||||||
OntModel displayOntModel = (OntModel) sce.getServletContext().getAttribute("displayOntModel");
|
OntModel displayOntModel = (OntModel) sce.getServletContext().getAttribute("displayOntModel");
|
||||||
Entity2LuceneDoc translator = new Entity2LuceneDoc(
|
Entity2LuceneDoc translator = new Entity2LuceneDoc(
|
||||||
new ProhibitedFromSearch(DisplayVocabulary.PRIMARY_LUCENE_INDEX_URI, displayOntModel),
|
new ProhibitedFromSearch(DisplayVocabulary.PRIMARY_LUCENE_INDEX_URI, displayOntModel),
|
||||||
new IndividualProhibitedFromSearch(context)
|
new IndividualProhibitedFromSearchImpl(context)
|
||||||
);
|
);
|
||||||
indexer.addObj2Doc(translator);
|
indexer.addObj2Doc(translator);
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
package edu.cornell.mannlib.vitro.webapp.search.solr;
|
package edu.cornell.mannlib.vitro.webapp.search.solr;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashSet;
|
import java.util.Collections;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -13,16 +13,8 @@ import org.apache.lucene.document.Document;
|
||||||
import org.apache.solr.common.SolrDocument;
|
import org.apache.solr.common.SolrDocument;
|
||||||
import org.apache.solr.common.SolrInputDocument;
|
import org.apache.solr.common.SolrInputDocument;
|
||||||
import org.joda.time.DateTime;
|
import org.joda.time.DateTime;
|
||||||
import org.openrdf.model.vocabulary.RDF;
|
|
||||||
|
|
||||||
import com.hp.hpl.jena.rdf.model.Property;
|
|
||||||
import com.hp.hpl.jena.rdf.model.RDFNode;
|
|
||||||
import com.hp.hpl.jena.rdf.model.Resource;
|
|
||||||
import com.hp.hpl.jena.rdf.model.StmtIterator;
|
|
||||||
import com.hp.hpl.jena.vocabulary.OWL;
|
import com.hp.hpl.jena.vocabulary.OWL;
|
||||||
import java.util.Hashtable;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.StringTokenizer;
|
|
||||||
|
|
||||||
import edu.cornell.mannlib.vitro.webapp.beans.DataPropertyStatement;
|
import edu.cornell.mannlib.vitro.webapp.beans.DataPropertyStatement;
|
||||||
import edu.cornell.mannlib.vitro.webapp.beans.Individual;
|
import edu.cornell.mannlib.vitro.webapp.beans.Individual;
|
||||||
|
@ -32,8 +24,8 @@ import edu.cornell.mannlib.vitro.webapp.beans.VClass;
|
||||||
import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary;
|
import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary;
|
||||||
import edu.cornell.mannlib.vitro.webapp.search.IndexingException;
|
import edu.cornell.mannlib.vitro.webapp.search.IndexingException;
|
||||||
import edu.cornell.mannlib.vitro.webapp.search.VitroTermNames;
|
import edu.cornell.mannlib.vitro.webapp.search.VitroTermNames;
|
||||||
|
import edu.cornell.mannlib.vitro.webapp.search.beans.ClassProhibitedFromSearch;
|
||||||
import edu.cornell.mannlib.vitro.webapp.search.beans.IndividualProhibitedFromSearch;
|
import edu.cornell.mannlib.vitro.webapp.search.beans.IndividualProhibitedFromSearch;
|
||||||
import edu.cornell.mannlib.vitro.webapp.search.beans.ProhibitedFromSearch;
|
|
||||||
import edu.cornell.mannlib.vitro.webapp.search.docbuilder.Obj2DocIface;
|
import edu.cornell.mannlib.vitro.webapp.search.docbuilder.Obj2DocIface;
|
||||||
|
|
||||||
public class IndividualToSolrDocument implements Obj2DocIface {
|
public class IndividualToSolrDocument implements Obj2DocIface {
|
||||||
|
@ -46,7 +38,7 @@ public class IndividualToSolrDocument implements Obj2DocIface {
|
||||||
|
|
||||||
private static String entClassName = Individual.class.getName();
|
private static String entClassName = Individual.class.getName();
|
||||||
|
|
||||||
private ProhibitedFromSearch classesProhibitedFromSearch;
|
private ClassProhibitedFromSearch classesProhibitedFromSearch;
|
||||||
|
|
||||||
private IndividualProhibitedFromSearch individualProhibitedFromSearch;
|
private IndividualProhibitedFromSearch individualProhibitedFromSearch;
|
||||||
|
|
||||||
|
@ -58,12 +50,17 @@ public class IndividualToSolrDocument implements Obj2DocIface {
|
||||||
|
|
||||||
private static List<String> contextNodeClassNames = new ArrayList<String>();
|
private static List<String> contextNodeClassNames = new ArrayList<String>();
|
||||||
|
|
||||||
public IndividualToSolrDocument(ProhibitedFromSearch classesProhibitedFromSearch,
|
public IndividualToSolrDocument(
|
||||||
|
ClassProhibitedFromSearch classesProhibitedFromSearch,
|
||||||
IndividualProhibitedFromSearch individualProhibitedFromSearch){
|
IndividualProhibitedFromSearch individualProhibitedFromSearch){
|
||||||
this(classesProhibitedFromSearch,individualProhibitedFromSearch,null);
|
|
||||||
|
this( classesProhibitedFromSearch,
|
||||||
|
individualProhibitedFromSearch,
|
||||||
|
Collections.EMPTY_LIST);
|
||||||
}
|
}
|
||||||
|
|
||||||
public IndividualToSolrDocument(ProhibitedFromSearch classesProhibitedFromSearch,
|
public IndividualToSolrDocument(
|
||||||
|
ClassProhibitedFromSearch classesProhibitedFromSearch,
|
||||||
IndividualProhibitedFromSearch individualProhibitedFromSearch,
|
IndividualProhibitedFromSearch individualProhibitedFromSearch,
|
||||||
List<DocumentModifier> docModifiers){
|
List<DocumentModifier> docModifiers){
|
||||||
this.classesProhibitedFromSearch = classesProhibitedFromSearch;
|
this.classesProhibitedFromSearch = classesProhibitedFromSearch;
|
||||||
|
@ -129,7 +126,7 @@ public class IndividualToSolrDocument implements Obj2DocIface {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if( !prohibited && classesProhibitedFromSearch.isClassProhibited(clz.getURI()))
|
if( !prohibited && classesProhibitedFromSearch.isClassProhibitedFromSearch(clz.getURI()))
|
||||||
prohibited = true;
|
prohibited = true;
|
||||||
if( clz.getSearchBoost() != null)
|
if( clz.getSearchBoost() != null)
|
||||||
doc.setDocumentBoost(doc.getDocumentBoost() + clz.getSearchBoost());
|
doc.setDocumentBoost(doc.getDocumentBoost() + clz.getSearchBoost());
|
||||||
|
|
|
@ -23,12 +23,11 @@ import edu.cornell.mannlib.vitro.webapp.dao.filtering.filters.VitroFilterUtils;
|
||||||
import edu.cornell.mannlib.vitro.webapp.dao.filtering.filters.VitroFilters;
|
import edu.cornell.mannlib.vitro.webapp.dao.filtering.filters.VitroFilters;
|
||||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.ModelContext;
|
import edu.cornell.mannlib.vitro.webapp.dao.jena.ModelContext;
|
||||||
import edu.cornell.mannlib.vitro.webapp.dao.jena.SearchReindexingListener;
|
import edu.cornell.mannlib.vitro.webapp.dao.jena.SearchReindexingListener;
|
||||||
import edu.cornell.mannlib.vitro.webapp.search.beans.IndividualProhibitedFromSearch;
|
import edu.cornell.mannlib.vitro.webapp.search.beans.IndividualProhibitedFromSearchImpl;
|
||||||
import edu.cornell.mannlib.vitro.webapp.search.beans.ObjectSourceIface;
|
import edu.cornell.mannlib.vitro.webapp.search.beans.ObjectSourceIface;
|
||||||
import edu.cornell.mannlib.vitro.webapp.search.beans.ProhibitedFromSearch;
|
import edu.cornell.mannlib.vitro.webapp.search.beans.ProhibitedFromSearch;
|
||||||
import edu.cornell.mannlib.vitro.webapp.search.docbuilder.Obj2DocIface;
|
import edu.cornell.mannlib.vitro.webapp.search.docbuilder.Obj2DocIface;
|
||||||
import edu.cornell.mannlib.vitro.webapp.search.indexing.IndexBuilder;
|
import edu.cornell.mannlib.vitro.webapp.search.indexing.IndexBuilder;
|
||||||
import edu.cornell.mannlib.vitro.webapp.search.lucene.Entity2LuceneDoc;
|
|
||||||
import edu.cornell.mannlib.vitro.webapp.search.lucene.LuceneSetup;
|
import edu.cornell.mannlib.vitro.webapp.search.lucene.LuceneSetup;
|
||||||
import edu.cornell.mannlib.vitro.webapp.servlet.setup.AbortStartup;
|
import edu.cornell.mannlib.vitro.webapp.servlet.setup.AbortStartup;
|
||||||
|
|
||||||
|
@ -74,7 +73,7 @@ public class SolrSetup implements javax.servlet.ServletContextListener{
|
||||||
|
|
||||||
IndividualToSolrDocument indToSolrDoc = new IndividualToSolrDocument(
|
IndividualToSolrDocument indToSolrDoc = new IndividualToSolrDocument(
|
||||||
new ProhibitedFromSearch(DisplayVocabulary.PRIMARY_LUCENE_INDEX_URI, displayOntModel),
|
new ProhibitedFromSearch(DisplayVocabulary.PRIMARY_LUCENE_INDEX_URI, displayOntModel),
|
||||||
new IndividualProhibitedFromSearch(context),
|
new IndividualProhibitedFromSearchImpl(context),
|
||||||
modifiers);
|
modifiers);
|
||||||
List<Obj2DocIface> o2d = new ArrayList<Obj2DocIface>();
|
List<Obj2DocIface> o2d = new ArrayList<Obj2DocIface>();
|
||||||
o2d.add(indToSolrDoc);
|
o2d.add(indToSolrDoc);
|
||||||
|
|
|
@ -41,8 +41,8 @@ public class ProhibitedFromSearchTest {
|
||||||
ProhibitedFromSearch pfs = new ProhibitedFromSearch( SEARCH_CONFIG_URI , m);
|
ProhibitedFromSearch pfs = new ProhibitedFromSearch( SEARCH_CONFIG_URI , m);
|
||||||
Assert.assertNotNull(pfs.prohibitedClasses);
|
Assert.assertNotNull(pfs.prohibitedClasses);
|
||||||
Assert.assertTrue(pfs.prohibitedClasses.size() == 4);
|
Assert.assertTrue(pfs.prohibitedClasses.size() == 4);
|
||||||
Assert.assertTrue(pfs.isClassProhibited(TEST_CLASS));
|
Assert.assertTrue(pfs.isClassProhibitedFromSearch(TEST_CLASS));
|
||||||
Assert.assertTrue(!pfs.isClassProhibited("http://someOtherClass.com/test"));
|
Assert.assertTrue(!pfs.isClassProhibitedFromSearch("http://someOtherClass.com/test"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -55,8 +55,8 @@ public class ProhibitedFromSearchTest {
|
||||||
ProhibitedFromSearch pfs = new ProhibitedFromSearch( "http://NotFound.com/inModel", m);
|
ProhibitedFromSearch pfs = new ProhibitedFromSearch( "http://NotFound.com/inModel", m);
|
||||||
Assert.assertNotNull(pfs.prohibitedClasses);
|
Assert.assertNotNull(pfs.prohibitedClasses);
|
||||||
Assert.assertTrue(pfs.prohibitedClasses.size() == 0);
|
Assert.assertTrue(pfs.prohibitedClasses.size() == 0);
|
||||||
Assert.assertTrue(!pfs.isClassProhibited(TEST_CLASS));
|
Assert.assertTrue(!pfs.isClassProhibitedFromSearch(TEST_CLASS));
|
||||||
Assert.assertTrue(!pfs.isClassProhibited("http://someOtherClass.com/test"));
|
Assert.assertTrue(!pfs.isClassProhibitedFromSearch("http://someOtherClass.com/test"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -122,7 +122,7 @@ public class ProhibitedFromSearchTest {
|
||||||
ProhibitedFromSearch pfs = new ProhibitedFromSearch( DisplayVocabulary.PRIMARY_LUCENE_INDEX_URI, m);
|
ProhibitedFromSearch pfs = new ProhibitedFromSearch( DisplayVocabulary.PRIMARY_LUCENE_INDEX_URI, m);
|
||||||
Assert.assertNotNull(pfs.prohibitedClasses);
|
Assert.assertNotNull(pfs.prohibitedClasses);
|
||||||
Assert.assertEquals(1, pfs.prohibitedClasses.size() );
|
Assert.assertEquals(1, pfs.prohibitedClasses.size() );
|
||||||
Assert.assertTrue(pfs.isClassProhibited("http://vivoweb.org/ontology/core#NonAcademic"));
|
Assert.assertTrue(pfs.isClassProhibitedFromSearch("http://vivoweb.org/ontology/core#NonAcademic"));
|
||||||
Assert.assertTrue(!pfs.isClassProhibited("http://someOtherClass.com/test"));
|
Assert.assertTrue(!pfs.isClassProhibitedFromSearch("http://someOtherClass.com/test"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue