Search index should reindex as pellet adds new types. NIHVIVO-702
This commit is contained in:
parent
9e9876cd43
commit
43cb152455
2 changed files with 14 additions and 24 deletions
|
@ -20,7 +20,8 @@ import edu.cornell.mannlib.vitro.webapp.dao.jena.event.EditEvent;
|
||||||
import edu.cornell.mannlib.vitro.webapp.search.indexing.IndexBuilder;
|
import edu.cornell.mannlib.vitro.webapp.search.indexing.IndexBuilder;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This class is thread safe.
|
* This class is thread safe. Notice that doAsyncIndexBuild() is frequently
|
||||||
|
* called because the inference system does not seem to send notifyEvents.
|
||||||
*/
|
*/
|
||||||
public class SearchReindexingListener implements ModelChangedListener {
|
public class SearchReindexingListener implements ModelChangedListener {
|
||||||
private HashSet<String> changedUris;
|
private HashSet<String> changedUris;
|
||||||
|
@ -38,30 +39,19 @@ public class SearchReindexingListener implements ModelChangedListener {
|
||||||
if( stmt.getSubject().isURIResource() ){
|
if( stmt.getSubject().isURIResource() ){
|
||||||
//changedUris.add( stmt.getSubject().getURI());
|
//changedUris.add( stmt.getSubject().getURI());
|
||||||
indexBuilder.addToChangedUris(stmt.getSubject().getURI());
|
indexBuilder.addToChangedUris(stmt.getSubject().getURI());
|
||||||
log.debug(stmt.getSubject().getURI());
|
log.debug("subject: " + stmt.getSubject().getURI());
|
||||||
}
|
}
|
||||||
|
|
||||||
if( stmt.getObject().isURIResource() ){
|
if( stmt.getObject().isURIResource() ){
|
||||||
//changedUris.add( ((Resource) stmt.getObject().as(Resource.class)).getURI() );
|
//changedUris.add( ((Resource) stmt.getObject().as(Resource.class)).getURI() );
|
||||||
indexBuilder.addToChangedUris(((Resource) stmt.getObject()).getURI());
|
indexBuilder.addToChangedUris(((Resource) stmt.getObject()).getURI());
|
||||||
log.debug(((Resource) stmt.getObject().as(Resource.class)).getURI());
|
log.debug("object: " + ((Resource) stmt.getObject().as(Resource.class)).getURI());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// private synchronized Set<String> getAndClearChangedUris(){
|
|
||||||
// log.debug("Getting and clearing changed URIs.");
|
|
||||||
// Set<String> out = changedUris;
|
|
||||||
// changedUris = new HashSet<String>();
|
|
||||||
// return out;
|
|
||||||
// }
|
|
||||||
|
|
||||||
private void doAyncIndex(){
|
private void doAsyncIndexBuild(){
|
||||||
// for( String uri: getAndClearChangedUris()){
|
|
||||||
// indexBuilder.addToChangedUris(uri);
|
|
||||||
// }
|
|
||||||
new Thread(indexBuilder).start();
|
new Thread(indexBuilder).start();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void notifyEvent(Model arg0, Object arg1) {
|
public void notifyEvent(Model arg0, Object arg1) {
|
||||||
|
@ -69,7 +59,7 @@ public class SearchReindexingListener implements ModelChangedListener {
|
||||||
EditEvent editEvent = (EditEvent)arg1;
|
EditEvent editEvent = (EditEvent)arg1;
|
||||||
if( !editEvent.getBegin() ){// editEvent is the end of an edit
|
if( !editEvent.getBegin() ){// editEvent is the end of an edit
|
||||||
log.debug("Doing search index build at end of EditEvent");
|
log.debug("Doing search index build at end of EditEvent");
|
||||||
doAyncIndex();
|
doAsyncIndexBuild();
|
||||||
}
|
}
|
||||||
} else{
|
} else{
|
||||||
log.debug("ignoring event " + arg1.getClass().getName() + " "+ arg1 );
|
log.debug("ignoring event " + arg1.getClass().getName() + " "+ arg1 );
|
||||||
|
@ -79,13 +69,13 @@ public class SearchReindexingListener implements ModelChangedListener {
|
||||||
@Override
|
@Override
|
||||||
public void addedStatement(Statement stmt) {
|
public void addedStatement(Statement stmt) {
|
||||||
addChange(stmt);
|
addChange(stmt);
|
||||||
//doAyncIndex();
|
doAsyncIndexBuild();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void removedStatement(Statement stmt){
|
public void removedStatement(Statement stmt){
|
||||||
addChange(stmt);
|
addChange(stmt);
|
||||||
//doAyncIndex();
|
doAsyncIndexBuild();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final Log log = LogFactory.getLog(SearchReindexingListener.class.getName());
|
private static final Log log = LogFactory.getLog(SearchReindexingListener.class.getName());
|
||||||
|
@ -95,7 +85,7 @@ public class SearchReindexingListener implements ModelChangedListener {
|
||||||
for( Statement s: arg0){
|
for( Statement s: arg0){
|
||||||
addChange(s);
|
addChange(s);
|
||||||
}
|
}
|
||||||
//doAyncIndex();
|
doAsyncIndexBuild();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -103,7 +93,7 @@ public class SearchReindexingListener implements ModelChangedListener {
|
||||||
for( Statement s: arg0){
|
for( Statement s: arg0){
|
||||||
addChange(s);
|
addChange(s);
|
||||||
}
|
}
|
||||||
//doAyncIndex();
|
doAsyncIndexBuild();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -116,7 +106,7 @@ public class SearchReindexingListener implements ModelChangedListener {
|
||||||
}finally{
|
}finally{
|
||||||
arg0.close();
|
arg0.close();
|
||||||
}
|
}
|
||||||
//doAyncIndex();
|
doAsyncIndexBuild();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -132,7 +122,7 @@ public class SearchReindexingListener implements ModelChangedListener {
|
||||||
if( it != null ) it.close();
|
if( it != null ) it.close();
|
||||||
m.leaveCriticalSection();
|
m.leaveCriticalSection();
|
||||||
}
|
}
|
||||||
//doAyncIndex();
|
doAsyncIndexBuild();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -299,7 +299,7 @@ public class IndexBuilder implements Runnable {
|
||||||
private synchronized List<String> getAndEmptyChangedUris(){
|
private synchronized List<String> getAndEmptyChangedUris(){
|
||||||
LinkedList<String> out = new LinkedList<String>();
|
LinkedList<String> out = new LinkedList<String>();
|
||||||
out.addAll( changedUris );
|
out.addAll( changedUris );
|
||||||
changedUris = new LinkedList<String>();
|
changedUris = new HashSet<String>();
|
||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue