Adding DocumentModifier interface.

This commit is contained in:
briancaruso 2011-05-31 18:36:54 +00:00
parent 3c6a60818e
commit eb4aeef8d1
5 changed files with 89 additions and 1 deletions

View file

@ -0,0 +1,25 @@
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
package edu.cornell.mannlib.vitro.webapp.search.solr;
import org.apache.solr.common.SolrInputDocument;
import edu.cornell.mannlib.vitro.webapp.beans.Individual;
public class CalculateBeta implements DocumentModifier{
@Override
public void modifyDocument(Individual individual, SolrInputDocument doc) {
// TODO Auto-generated method stub
/*
may want to do something like:
Field f = doc.getField(termALLTEXTUSTEMMED);
f.setBoost( beta * f.getBoost() )
*/
}
}

View file

@ -0,0 +1,16 @@
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
package edu.cornell.mannlib.vitro.webapp.search.solr;
import org.apache.solr.common.SolrInputDocument;
import edu.cornell.mannlib.vitro.webapp.beans.Individual;
public class CalculatePhi implements DocumentModifier{
@Override
public void modifyDocument(Individual individual, SolrInputDocument doc) {
// TODO Auto-generated method stub
}
}

View file

@ -0,0 +1,16 @@
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
package edu.cornell.mannlib.vitro.webapp.search.solr;
import org.apache.solr.common.SolrInputDocument;
import edu.cornell.mannlib.vitro.webapp.beans.Individual;
public class ContextNodeFields implements DocumentModifier{
@Override
public void modifyDocument(Individual individual, SolrInputDocument doc) {
// TODO Auto-generated method stub
}
}

View file

@ -0,0 +1,14 @@
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
package edu.cornell.mannlib.vitro.webapp.search.solr;
import org.apache.solr.common.SolrInputDocument;
import edu.cornell.mannlib.vitro.webapp.beans.Individual;
/**
* This interface represents an object that can add to a SolrInputDocument.
*/
public interface DocumentModifier {
public void modifyDocument(Individual individual, SolrInputDocument doc);
}

View file

@ -53,6 +53,8 @@ public class IndividualToSolrDocument implements Obj2DocIface {
private SearchQueryHandler searchQueryHandler;
private List<DocumentModifier> documentModifiers = new ArrayList<DocumentModifier>();
public static Map<String,Float> betas = new Hashtable<String,Float>();
private static List<String> contextNodeClassNames = new ArrayList<String>();
@ -66,6 +68,14 @@ public class IndividualToSolrDocument implements Obj2DocIface {
fillContextNodes();
}
public IndividualToSolrDocument(ProhibitedFromSearch classesProhibitedFromSearch,
IndividualProhibitedFromSearch individualProhibitedFromSearch,
List<DocumentModifier> docModifiers){
this.classesProhibitedFromSearch = classesProhibitedFromSearch;
this.individualProhibitedFromSearch = individualProhibitedFromSearch;
this.documentModifiers = docModifiers;
fillContextNodes();
}
@SuppressWarnings("static-access")
@Override
@ -317,6 +327,13 @@ public class IndividualToSolrDocument implements Obj2DocIface {
doc.addField(term.ALLTEXTUNSTEMMED, alltext, 2.5F*beta*phi);
doc.addField(term.ALLTEXT_PHONETIC, alltext, PHONETIC_BOOST);
doc.setDocumentBoost(2.5F*beta*phi);
//run the document modifiers
if( documentModifiers != null ){
for(DocumentModifier modifier: documentModifiers){
modifier.modifyDocument(ent, doc);
}
}
}
return doc;