2014-11-24 51 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); 
    } 
}