2014-11-24 57 views
0

嗨家伙iam面临的情况下,我不应该索引文件不需要的内容数字。在我的情况下,我想用一个包含黑名单的文件。所以当文档被索引到索引过程时。 Solr应在将该文档存储到索引之前验证文档是否包含不需要的内容(黑名单关键字)。在索引过程之前,我没有执行黑名单,我在SOLR上找到了。如何取消索引使用更新请求处理器Solr文档

所以我想开发一个扩展UpdateRequestProcessor的java类。没有评论UpdateRequestProcessor方法的目的的文档。

我想我应该去实现黑名单逻辑调查中processAdd(AddUpdateCommand CMD)方法之后,我应该包括取消匹配黑名单关键字的文件去什么码?

public class BlackListUpdateRequestProcessor extends UpdateRequestProcessor{ 

public BlackListUpdateRequestProcessor(UpdateRequestProcessor next) { 
    super(next); 
} 

@Override 
public void finish() throws IOException { 
    // TODO Auto-generated method stub 
    super.finish(); 
} 

@Override 
public void processAdd(AddUpdateCommand cmd) throws IOException { 
    // blacklist investigation logic 
    // cancel indexing code here. how to do that? 
    super.processAdd(cmd); 
} 

@Override 
public void processCommit(CommitUpdateCommand cmd) throws IOException { 
    // TODO Auto-generated method stub 
    super.processCommit(cmd); 
} 

@Override 
public void processDelete(DeleteUpdateCommand cmd) throws IOException { 
    // TODO Auto-generated method stub 
    super.processDelete(cmd); 
} 

@Override 
public void processMergeIndexes(MergeIndexesCommand cmd) throws IOException { 
    // TODO Auto-generated method stub 
    super.processMergeIndexes(cmd); 
} 

@Override 
public void processRollback(RollbackUpdateCommand cmd) throws IOException { 
    // TODO Auto-generated method stub 
    super.processRollback(cmd); 
} 

}

的感谢!

+1

只是不叫'super.processAdd()'方法,如果黑名单逻辑返回true – sidgate 2014-11-24 17:31:34

+0

感谢@sidgate增加了一些琐碎的blaclist调查代码它的工作原理!现在我必须改进我的代码...; – 2014-11-24 18:41:37

+0

@sidgate添加它作为答案,以便它可以被接受。 :-) – MatsLindh 2014-11-24 19:40:00

回答

1

不要叫super.processAdd方法,如果黑名单逻辑返回true

@Override 
public void processAdd(AddUpdateCommand cmd) throws IOException { 
    if(!blacklistService.isBlackListed(cmd.getSolrInputDocument())){ 
     super.processAdd(cmd); 
    } 
}