科技行者

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

知识库

知识库 安全导航

至顶网软件频道在高级搜索页面中创建并暴露托管属性(2)

在高级搜索页面中创建并暴露托管属性(2)

  • 扫一扫
    分享文章到微信

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

SharePoint站点中的列表和文档库都具有其特定专有的属性。当爬网器索引这些容器中的内容时,这些定制的元数据都会被搜集起来。

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

关键字: 搜索 SharePoint SharePoint2007 MOSS Office

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

获得列表的爬网属性

我们可以通过Schema类的方法QueryCrawledProperties,得到所有的已爬网属性。由于这将是一个巨大的列表,因此这里也提供了参数用于过滤和约束由QueryCrawledProperties返回的属性的数量。

listBoxCrawledProperties.Items.Clear();
listBoxCrawledProperties.DisplayMember 
= "Name";
foreach (CrawledProperty cprop in 
   schema.QueryCrawledProperties(
string.Empty, 1000, Guid.NewGuid(), 
                                 
string.Empty, true))
{
    listBoxCrawledProperties.Items.Add(cprop);
}

创建托管属性

通过调用ManagedPropertyCollection的Create方法,我们可以创建一个托管属性。参数是托管属性名称和将要存储的信息类型。

Schema schema = new Schema(this.searchContext);
schema.AllManagedProperties.Create
     (textBoxManagedPropertyName.Text, ManagedDataType.Text);

映射爬网属性到一个托管属性

类MappingCollection的实例可以使映射对象添加到搜索中。每一个都表现为一个从已爬网属性到托管属性的映射。

ManagedProperty prop = (ManagedProperty)
      treeViewManagedProperties.SelectedNode.Tag;
MappingCollection mappings 
= new MappingCollection();
foreach (CrawledProperty cprop in 
         listBoxCrawledProperties.SelectedItems)
{
    mappings.Add(
new Mapping
      (cprop.Propset, cprop.Name, cprop.VariantType, prop.PID));
}
prop.SetMappings(mappings);

当对SharePoint网站内容进行爬网时,元数据通过爬网器被收集整理并存在属性商店(Store)中(由SSP控制的数据库之一)。在SSP管理站点中,管理员可以将一个或多个已爬网属性映射到一个托管属性。一个托管属性可以被暴露到高级搜索页面或其他我们定义的允许共享的搜索范围中的属性选取器内。

创建一个托管属性

  1. 在SSP管理网站的搜索设置中,点“元数据属性映射”
  2. 在左侧快速启动区有两个链接,一个是托管属性,用于显示托管属性的列表。还有一个是已爬网属性,用于显示已爬网属性的列表。
  3. 在托管属性的列表页面,点新建托管属性来新建一个。我们可以指定一个标题(不允许有空格),一个描述信息,和一个所存储信息的类型。
  4. 到已爬网属性的映射,可以通过点“添加映射”,打开已爬网属性选择网页对话框来进行映射。
  5. 有一个选项可以允许此属性在多个搜索范围中使用。

图一,用于编程访问和维护托管属性的类

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

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

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