科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道创建内容源用于爬网业务数据 (3)

创建内容源用于爬网业务数据 (3)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

内容源通常被认为是一块区域(location),其中包含我们想要爬网或索引的资源。在MOSS中,默认提供了多种类型的区域:如SharePoint网站集,网站,共享文件夹,Exchange公共文件夹,通过BDC得到的数据等。

作者:sunmoonfire 来源:blog 2007年9月2日

关键字: 数据 SharePoint SharePoint2007 MOSS Office

  • 评论
  • 分享微博
  • 分享邮件

获取爬网状态

在ContentSource类这个级别上暴露了很多信息,比如爬网状态和定时爬网计划等。

ContentSource contentsource = (ContentSource)node.Tag;
labelCrawlStatus.Text 
= contentsource.CrawlStatus.ToString();
labelCrawlStarted.Text 
= contentsource.CrawlStarted.ToString();
labelCrawlCompleted.Text 
= contentsource.CrawlCompleted.ToString();

开始爬网

可用的方法有两个:完全爬网和增量爬网。这两个方法都是ContentSource 类提供的。

contentsource.StartFullCrawl();
contentsource.StartIncrementalCrawl();

获取业务数据应用程序

所有BDC的功能都通过其丰富的对象模型予以提供(位于Microsoft.SharePoint.Portal.dll中的Microsoft.Office.Server.ApplicationRegistry命名空间)。如果我们的代码不是运行在SharePoint Server的上下文环境中,那么SqlSessionProvider的实例和方法SetSharedResourceProviderToUser的调用就会在其内部与SSP上下文钩(hooks up)在一起。ApplicationRegistry类暴露了一个GetLobSystemInstances方法,其中包括了所有在BDC中可用的业务数据应用程序。

SqlSessionProvider.Instance().SetSharedResourceProviderToUse
  (
"SharedServices1");
NamedLobSystemInstanceDictionary instances 
= 
  ApplicationRegistry.GetLobSystemInstances();
foreach (LobSystemInstance app in instances.Values)
{
   comboBoxBDCApps.Items.Add(app.Name);
}

创建一个内容源

我们可以通过在对象ContentSourceCollection级别上调用Create方法来创建一个内容源。我们可以创建一个BDC特定的URI来指向业务数据应用程序,只需要调用由类型BusinessDataContentSource提供的静态方法ConstructStartAddress即可。这个URI会被添加到ContentSource实例的StartAddresCollection对象中。最后,调用一下Update方法,将所有改动保存到数据库中。

Uri bdcuri = BusinessDataContentSource.ConstructStartAddress
   (
this.searchctx.Name, comboBoxBDCApps.SelectedItem.ToString());                
Content content 
= new Content(this.searchctx);
BusinessDataContentSource contentsource 
= 
  (BusinessDataContentSource)content.ContentSources.Create
  (
typeof(BusinessDataContentSource),textBoxContentSourceName.Text);
contentsource.StartAddresses.Add(bdcuri);
contentsource.Update(); 

SharePoint Server提供的爬网器可以被指到一个区域上,并按顺序索引该区域中的可用内容。只需要在SSP级别上创建并配置一个内容源即可。下面是可以被创建的各种不同类型的内容源:

  • SharePoint网站集
  • 网站
  • 共享文件夹
  • Exchange Server公共文件夹
  • 业务数据
  • Lotus Notes数据库 (仅在预先做了相关安装后有效)

业务数据通常以结构化的方式存储在一个关系型数据库中(如SQL Server),或者存储在LOB(line-of-business)系统中(如SAP或Microsoft Dynamics CRM),可以通过标准的一致的方法使用BDC中间层获取到。开发人员可以通过发布一个XML文件(应用程序定义文件)的方法将这些业务数据模型化。该文件中必须包括一个很重要的IDEnumerator类型的方法,用于爬网和索引数据。该方法必须返回记录中所有的主键,以便用于索引。爬网器会为每个主键生成一个概括页面,并在该页中对内容按照该主键进行索引。

图一,本文中用到的搜索相关的类

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章