Kentico 10 使用的网络爬虫引擎
Web Crawler Engine used by Kentico 10
根据文档 Configuring Page Crawler Indexes,是否有更多关于 Kentico 10 使用的网络爬虫 technology/engine 的信息?
我问的原因是因为我想考虑将它用于可以位于 Kentico 之外的自定义爬虫项目,并且仍然允许它与 Kentico 平台具有固有的兼容性。
Kentico 使用 Lucene .NET。对于独立项目来说,这是一个很好的解决方案。我用它来支持托管在 Azure 中的自定义 Web API。
麦克
Lucene 使用 Nutch http://nutch.apache.org/,这是一种开源网络爬虫,用于索引网络内容。它是 Lucene 提供的整个框架的一部分。
据我从 Kentico 10 源代码可以看出,Kentico SmartSearch 使用的爬虫是完全专有的。它没有使用任何第 3 方库。
使用System.Web.HttpWebRequest
下载页面内容。完整内容作为字符串反馈到 SmartSearch 索引器中。之后它通过文本提取并被馈送到 Lucene 进行索引。
Kentico SmartSearch 使用外部爬虫并不容易。我们通常远离爬虫,因为与直接从数据库中提取数据的标准索引相比,它的执行成本相当高。
Kentico 支持 executing some scheduled tasks in a Windows service 但不支持搜索任务。
请注意,Kentico SmartSearch 实际上并不通过发现链接来抓取网站。它使用内容树来确定需要索引的内容。如果您想索引其他内容,例如来自您集成的系统,您需要按照 here.
所述实施自定义搜索服务
可行的一件事是让外部进程抓取您想要索引的任何内容,并将原始 HTML 内容存储起来。然后编写一个自定义 SmartSearch 索引,从存储中提取数据以在 Kentico 中建立索引。如果您正在索引由 Kentico 管理的内容,您可以通过挂钩文档事件将其提升到一个新的水平。这应该允许您仅在页面更新时抓取它们。
根据文档 Configuring Page Crawler Indexes,是否有更多关于 Kentico 10 使用的网络爬虫 technology/engine 的信息?
我问的原因是因为我想考虑将它用于可以位于 Kentico 之外的自定义爬虫项目,并且仍然允许它与 Kentico 平台具有固有的兼容性。
Kentico 使用 Lucene .NET。对于独立项目来说,这是一个很好的解决方案。我用它来支持托管在 Azure 中的自定义 Web API。
麦克
Lucene 使用 Nutch http://nutch.apache.org/,这是一种开源网络爬虫,用于索引网络内容。它是 Lucene 提供的整个框架的一部分。
据我从 Kentico 10 源代码可以看出,Kentico SmartSearch 使用的爬虫是完全专有的。它没有使用任何第 3 方库。
使用System.Web.HttpWebRequest
下载页面内容。完整内容作为字符串反馈到 SmartSearch 索引器中。之后它通过文本提取并被馈送到 Lucene 进行索引。
Kentico SmartSearch 使用外部爬虫并不容易。我们通常远离爬虫,因为与直接从数据库中提取数据的标准索引相比,它的执行成本相当高。
Kentico 支持 executing some scheduled tasks in a Windows service 但不支持搜索任务。
请注意,Kentico SmartSearch 实际上并不通过发现链接来抓取网站。它使用内容树来确定需要索引的内容。如果您想索引其他内容,例如来自您集成的系统,您需要按照 here.
所述实施自定义搜索服务可行的一件事是让外部进程抓取您想要索引的任何内容,并将原始 HTML 内容存储起来。然后编写一个自定义 SmartSearch 索引,从存储中提取数据以在 Kentico 中建立索引。如果您正在索引由 Kentico 管理的内容,您可以通过挂钩文档事件将其提升到一个新的水平。这应该允许您仅在页面更新时抓取它们。