Apache > ManifoldCF > Release Documentation
 

概要

概要

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)可以使用多个权限为一个文档定义安全。 在次情形下,权限组允许设置适当的多对多关系。