WEB开发网
开发学院软件开发Java 深入浅出 jackrabbit 四 索引提交(上) 阅读

深入浅出 jackrabbit 四 索引提交(上)

 2009-09-17 00:00:00 来源:WEB开发网   
核心提示:在上上篇文章中,我们了解了创建索引的一般流程,深入浅出 jackrabbit 四 索引提交(上),在上篇文章中,我们也已经明确的知道,从方法名,我们得到的信息是:1执行Node,一个node的哪些信息是需要加入到索引中去的,也就是 jackrabbit是如何来创建document的

在上上篇文章中,我们了解了创建索引的一般流程,在上篇文章中,我们也已经明确的知道,一个node的哪些信息是需要加入到索引中去的,也就是 jackrabbit是如何来创建document的。那么接下来我们就是要了解jackrabbit是如何把这些document加入到索引文件中去的。

接下来我们需要回顾一下索引概览中的最后几句话:

那么代码的主要逻辑在哪里呢?

在DeleteNode和AddNode类中,还有就是在flush方法中。

这句话充分了说明本文需要描述的内容,那便是

1 如何把document从index删除

2 如何把document放到index中

3 什么是flush

在讨论这3个内容之前我们有必要说明一下executeAndLog方法的作用,从方法名,我们得到的信息是:1执行Node,而log一些数据,那么我们再来看看源代码

executeAndLog(new DeleteNode(transactionId, (UUID) remove.next()));

先进入了executeAndLog方法:

Java代码   

private Action executeAndLog(Action a) 
      throws IOException { 
    a.execute(this); 
    redoLog.append(a); 
    // please note that flushing the redo log is only required on 
    // commit, but we also want to keep track of new indexes for sure. 
    // otherwise it might happen that unused index folders are orphaned 
    // after a crash. 
    if (a.getType() == Action.TYPE_COMMIT || a.getType() == Action.TYPE_ADD_INDEX) { 
      redoLog.flush(); 
      // also flush indexing queue 
      indexingQueue.commit(); 
    } 
    return a; 
}

1 2 3 4 5 6  下一页

Tags:深入浅出 jackrabbit 索引

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接