Share via


[方法] 管理プロパティにマップされたクロール プロパティを取得する

エンタープライズ検索 管理オブジェクト モデルを使用して、管理プロパティにマップされたクロールプロパティの一覧にアクセスできます。

次の手順は、特定の管理プロパティにマップされたクロールプロパティの GUID とカテゴリを、コンソール アプリケーションから書き込む方法を示しています。

管理プロパティにマップされたクロール プロパティを取得するには

  1. アプリケーションで、次の DLL への参照を設定します。

    • Microsoft.SharePoint.dll

    • Microsoft.Office.Server.dll

    • Microsoft.Office.Server.Search.dll

  2. コンソール アプリケーションのクラス ファイルで、他の名前空間ディレクティブを含むコードの上部付近に次の using ステートメントを追加します。

    using Microsoft.SharePoint;
    using Microsoft.Office.Server.Search.Administration;
    
  3. 共有サービス プロバイダ (SSP) の検索コンテキストの Schema オブジェクトを取得するには、以下のコードを追加します。検索コンテキストの取得方法の詳細については、「[方法] 検索サービス プロバイダに検索コンテキストを返す」を参照してください。

    /*
    Replace <SiteName> with the name of a site using the SSP
    */
    string strURL = "http://<SiteName>";
    SearchContext context;
    using (SPSite site = new SPSite(strURL))
    {
        Context = SearchContext.GetContext(site);
    }
    Schema sspSchema = new Schema(context);
    
  4. 次のコードを使用して、管理プロパティのコレクションを取得します。

    ManagedPropertyCollection properties = sspSchema.AllManagedProperties;
    
  5. args[0] パラメータに指定された名前と一致する管理プロパティを取得します。

    ManagedProperty mProp = properties[args[0]]
    
  6. その管理プロパティのクロール プロパティの一覧を取得し、カテゴリ名とプロパティ GUID をコンソールに書き込みます。これを行うには、前の手順の "<…>" 文字を次のコードに置き換えます。

    foreach (CrawledProperty cProp in mProp.GetMappedCrawledProperties(mProp.GetMappings().Count))
    {
    Console.WriteLine(cProp.Name);
    Console.WriteLine(cProp.Propset);
    }
    

以下に、コンソール アプリケーション クラスのサンプルの完全なコードを示します。

前提条件

  • 共有サービス プロバイダが既に作成されていることを確認します。

プロジェクト参照

このサンプルを実行する前に、コンソール アプリケーション コード プロジェクトに以下のプロジェクト参照を追加します。

  • Microsoft.SharePoint

  • Microsoft.Office.Server

  • Microsoft.Office.Server.Search

using System;
using System.Collections;
using System.Text;
using Microsoft.Office.Server.Search.Administration;
using Microsoft.SharePoint;

namespace ManagedPropertiesSample
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                /*
                   Replace <SiteName> with the name
                   of a site using the SSP
                */
                string strURL = "http://<SiteName>";
                SearchContext context;
                using (SPSite site = new SPSite(strURL))
                {
                    Context = SearchContext.GetContext(site);
                }
                Schema sspSchema = new Schema(context);
                ManagedPropertyCollection props = sspSchema.AllManagedProperties;
                ManagedProperty mProp = properties[args[0]];
                foreach (CrawledProperty cProp in mProp.GetMappedCrawledProperties(mProp.GetMappings().Count))
                        {
                             Console.WriteLine(cProp.Name);
                             Console.WriteLine(cProp.Propset);
                        }
            }
            catch(Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
        }
    }
}

See Also

タスク

[方法] 共有サービス プロバイダの管理プロパティを取得する

[方法] 管理プロパティを作成する

[方法] 管理プロパティを削除する

概念

検索管理オブジェクト モデルを使うにあたって

メタデータを管理する