概要
概要
ManifoldCF是为下述目的而设计的爬虫框架。
- 可信赖,可从关闭或重启状态迅速恢复
- 增量式,事先在作业中定义所搜集的文档条件,并反复执行作业而获取文档差分
- 可同时连接不同类型的存储库搜集文档
- 定义并完全支持文档安全模型。根据不同的用户权限显示文档的搜索结果
- 保持切合实际的运转效率,并具有高吞吐量
- 可控制和预测内存使用量
ManifoldCF使用关系型数据库实现其体系结构。当前版本支持Postgresql,Derby,MySQL。其它数据库的使用也在考虑中。
ManifoldCF文档模型
ManifoldCF的各文档由二进制数据和相关元数据构成,并附上唯一的URI。与其组合使用的搜索引擎需支持此规格。
文档可以和访问令牌联系起来。关于访问令牌将在下一节说明。
ManifoldCF安全模型
ManifoldCF安全模型支持微软的Active Directory认证以及层次模型。这是因为许多企业使用Active Directory管理文件和文档的许可/权限。还有,Active Directory由很多第三方软件所利用。
ManifoldCF使用访问令牌的概念。ManifoldCF里访问令牌为,依赖于连接器的字符串。是否将文档显示给用户由此字符串所控制。利用Active Directory时,访问令牌为Active Directory SID(例:S-1-23-4-1-45)です。在LiveLink里访问令牌为具有其它含义的字符串。
ManifoldCF安全模型中,由权限连接器为将执行搜索的用户生成访问令牌一览。搜索受多个安全管理的服务器时,权限连接器组合访问令牌。所生成的访问令牌一览伴随搜索结果发送到搜索引擎。搜索引擎通过此信息限制向用户公开的内容。
生成文档索引后,ManifoldCF将访问令牌传给搜索引擎。访问令牌包括[允许]和[拒绝]两种令牌。另外,访问令牌和Active Directory同样可[共享],[フォルダ],[ファイル]に安全を设置することができます。
搜索引擎根据访问令牌决定所显示的搜索結果。作为搜索引擎使用Solr 1.5时,为使其标准化提供Apache Solr工程的SearchComponent插件和说明书( SOLR-1895)。
ManifoldCF概念性实体
连接器
ManifoldCF具有如下三个连接器:
- 权限连接器
- 存储库连接器
- 输出连接器
所有连接器具有共同功能。首先,所有连接器被池化。ManifoldCF管理所设连接器的实例。还可设实例数的上限。连接器实现了在ManifoldCF管理的缓冲池内管理自身的方法。连接器可以设置。连接器设置可通过依赖于连接器实现的XML语句实现。在ManifoldCF,所设连接器的实例称为连接。
连接器具有下述功能:
连接器类型 | 功能 |
---|---|
权限连接器 | 保证存储库做到将用户名和访问令牌联系起来。 |
存储库连接器 | 可从指定的存储库(例:SharePoint,Web)搜集文档 |
输出连接器 | 将搜集文档和相关处理(添加,删除等)发到后台搜索引擎或象Lucene的实体 |
连接
正如上述说明,连接是指连接的实现及连接器固有的设置信息。可从Web浏览器加以设置。
连接器设置用来设置“如何搜集”而非“搜集什么”。比如,LiveLink连接设置和LiveLink服务器的连接方法。并不设置搜集哪些文档。
存储库连接和权限连接以及输出连接的设置不尽相同。存储库连接里设置权限连接。这是因为ManifoldCF所搜集的所有文档需要适当的访问令牌。
作业
ManifoldCF中作业是指定存储库连接和输出连接的同步操作。作业包括:
- 详细说明
- 存储库连接(暗含权限组)
- 输出连接
- 存储库连接指定的作业对象文档和元数据的说明
- 爬取模型:“运行至完成”或“连续执行”
- 作业调度:指定时间段或立即执行
多个作业可共享存储库连接器。即,ManifoldCF允许设置可从多个作业搜集同一个文档,但不推荐通过不同作业搜集相同文档。
授权域
ManifoldCF支持用户联合概念。举个例子,假设一个用户针对FaceBook, Windows, Google拥有各自的登录名。 我们可为此用户定义三个不同的授权域:"FaceBook", "Windows", "Google".
在ManifoldCF, 每一个权限了解来自指定授权域的用户名和ID。这将允许ManifoldCF被设置成 可以合并生成自多个独立源的访问令牌,即使每一个源被输入不同的用户名。
权限组
ManifoldCF按权限连接加以分组,故可将多个权限赋予同一个文档。 一个权限组只不过是一个名称和描述,它被属于此权限组的权限连接所参照,同时还被希望受此权限组保护的存储库连接所参照。 至于最简单的存储库,通常一个权限就是一个权限组。 但是,具有联邦安全能力的存储库(如,支持Claim空间的SharePoint)可以使用多个权限为一个文档定义安全。 在次情形下,权限组允许设置适当的多对多关系。