深入浅出 jackrabbit 九 索引合并(下)
2009-09-17 00:00:00 来源:WEB开发网图片看不清楚?请点击这里查看原图(大图)。
其中AddIndex和DeleteIndex这两个Action值的关注,这两个Action一个是创建PersistentIndex,一个是删除 PersistentIndex,前面讲过一个PersistentIndex对应一个索引目录,AddIndex和DeleteIndex中必然包含着 PersistentIndex相关信息持久化的问题。
我们先来看看AddIndex类的execute方法:
Java代码
public void execute(MultiIndex index) throws IOException {
PersistentIndex idx = index.getOrCreateIndex(indexName);
if (!index.indexNames.contains(indexName)) {
index.indexNames.addName(indexName);
// now that the index is in the active list let the merger know about it
index.merger.indexAdded(indexName, idx.getNumDocuments());
}
}
Ok, 代码写得很清楚,如果indexNames不包含一个PersistentIndex的name,那么就将这个PersistentIndex的indexName加入到indexNames中。
再来看看DeleteIndex的execute方法:
Java代码
public void execute(MultiIndex index) throws IOException {
// get index if it exists
for (Iterator it = index.indexes.iterator(); it.hasNext();) {
PersistentIndex idx = (PersistentIndex) it.next();
if (idx.getName().equals(indexName)) {
idx.close();
index.deleteIndex(idx);
break;
}
}
}
Tags:深入浅出 jackrabbit 索引
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接