SharePoint Server で検索コンポーネントを管理する

適用対象:yes-img-13 2013yes-img-162016 yes-img-192019 yes-img-seSubscription Edition no-img-sopSharePoint in Microsoft 365

この記事の手順と例では、SharePoint ServerSharePoint Server と Search サービス アプリケーションがインストールされていること、および SharePoint Server 検索インデックスに既存の検索トポロジと項目があることを前提としています。 SharePoint Server と Search Service アプリケーションがインストールされたばかりで、SharePoint Server 検索インデックスにアイテムがない場合は、「SharePoint Server で既定の検索トポロジを変更する」の手順を使用してください。

この記事の手順は、以下の検索コンポーネントに適用されます。

  • 分析処理コンポーネント

  • コンテンツ処理コンポーネント

  • クロール コンポーネント

  • 検索管理コンポーネント

  • クエリ処理コンポーネント

インデックス コンポーネントを管理する手順については、「SharePoint Server でインデックス コンポーネントを管理する」を参照してください。

開始する前に

作業を始める前に、次の前提条件を確認してください。

  • SharePoint Server がインストールされており、検索トポロジを使用する Search Service アプリケーションが作成されている。 Search Service アプリケーションが正常な状態にあり、何らかの理由で一時停止していない。

  • この記事の手順を実行するユーザー アカウントが ファームの管理者 グループのメンバーである。

  • ターゲット検索トポロジの計画を作成済みです。

  • SharePoint Server が、検索コンポーネントをホストする予定のすべてのサーバー上にインストールされています。 サーバーはファームに追加され、ユーザーはこれらのすべてのサーバーの管理者である必要があります。 新しいアプリケーション サーバーを作成することも、既存の展開のアプリケーション サーバーを定義することもできます。

重要

この記事の手順では Microsoft PowerShell を使用します。 ファーム内の任意のサーバー上で Microsoft PowerShell コマンドを実行できます。 ただし、複数の検索トポロジプロシージャを実行する場合は、すべての Microsoft PowerShell コマンドに同じ SharePoint 管理シェルを使用して、コマンド間で Microsoft PowerShell オブジェクト参照を共有できるようにする必要があります。

サーバー上で Search Service インスタンスを起動する

新しいサーバーに検索コンポーネントを追加する前に、サーバー上でまず Search Service インスタンスを開始する必要があります。 Search Service インスタンスは、Search Service (OSearch16 と SPSearchHostController) によって使用されるすべての必要な Windows サービスを開始します。

Search Service インスタンスを開始するには

  1. この手順を実行するユーザー アカウントがファーム管理者グループのメンバーであることを確認します。

  2. ファーム内の 1 つのサーバーで SharePoint 管理シェルを開始します。

  3. Microsoft PowerShell コマンド プロンプトで、次のコマンドを入力します。

    $<host n > = Get-SPEnterpriseSearchServiceInstance -Identity "<Server name>"
    Start-SPEnterpriseSearchServiceInstance -Identity $<host n >
    

    詳細は次のとおりです。

    • $ <host n> には、Search Service インスタンスの PowerShell オブジェクト参照を指定します。

    • <Server name> には、インデックス コンポーネントの追加先のサーバーを指定します。 入力は、 12345678-90ab-cdef-1234-567890bcdefgh形式の有効な GUID、サーバーの有効な名前 ( myserver1 など)、または有効な SearchServiceInstance オブジェクトのインスタンスである必要があります。

    例:

    $hostA = Get-SPEnterpriseSearchServiceInstance -Identity "myserver1"
    $hostB = Get-SPEnterpriseSearchServiceInstance -Identity "myserver2"
    Start-SPEnterpriseSearchServiceInstance -Identity $hostA
    Start-SPEnterpriseSearchServiceInstance -Identity $hostB 
    
    

    参照 ($<host n>) を使用して、検索コンポーネントを追加するときにターゲット サーバーを指定します。

  4. すべての検索サービス インスタンスが実行中になるまで待ちます。 検索サービス インスタンスごとに、Microsoft PowerShell コマンド プロンプトで、コマンドが状態 Online を返すまで次のコマンドを入力します。

    Get-SPEnterpriseSearchServiceInstance -Identity $<host n >
    
    

    次に例を示します。

    Get-SPEnterpriseSearchServiceInstance -Identity $hostA
    TypeName    : SharePoint Server Search
    Description : Index content and serve search queries
    Id          : 82ce8815-ecbd-4cf3-a98e-33f20bd86039
    Server      : SPServer Name=myserver1.example.com
    Service     : SearchService Name=OSearch16
    Role        : None
    Status      : Online
    
    

アクティブな検索トポロジを取得する

Search Service アプリケーションのアクティブな検索トポロジを表示するには、Microsoft PowerShell を使用する必要があります。

アクティブな検索トポロジを表示するには

  1. この手順を実行するユーザー アカウントがファーム管理者グループのメンバーであることを確認します。

  2. SharePoint 管理シェルを開始します。 再利用可能な Microsoft PowerShell オブジェクト参照を作成した SharePoint 管理シェルを既に開いている場合は、代わりに、その開いているシェルを使用します。

  3. Microsoft PowerShell コマンド プロンプトで、次のコマンドを入力します。

    $ssa = Get-SPEnterpriseSearchServiceApplication
    $active = Get-SPEnterpriseSearchTopology -Active -SearchApplication $ssa 
    $active
    

このコマンドにより、アクティブなトポロジに関する情報が返されます。たとえば、次のように表示されます。TopologyId : 2d7bb046-1ad4-43a9-9984-754c4551a3ec CreationDate : 1/25/2016 3:06:00 AM State : Active ComponentCount : 6

検索コンポーネントのリストを取得する

アクティブな検索トポロジ内の検索コンポーネントの一覧とそのプロパティを表示するには、Microsoft PowerShell を使用する必要があります。 検索コンポーネントのプロパティの 1 つは、検索コンポーネント ID です。検索コンポーネント ID は、検索コンポーネントを削除する場合にのみ必要です。

すべての検索コンポーネントのリストを表示するには

  1. この手順を実行するユーザー アカウントがファーム管理者グループのメンバーであることを確認します。

  2. SharePoint 管理シェルを開始します。 再利用可能な SharePoint 管理シェル オブジェクト参照を作成した開いている SharePoint 管理シェルが既にある場合は、代わりに開いているシェルを使用します。

  3. Microsoft PowerShell コマンド プロンプトで、次のコマンドを入力します。

    $ssa = Get-SPEnterpriseSearchServiceApplication
    $active = Get-SPEnterpriseSearchTopology -SearchApplication $ssa -Active
    Get-SPEnterpriseSearchComponent -SearchTopology $active
    

    コマンドは、アクティブな検索トポロジ内の検索コンポーネントのリストとそれらのプロパティを戻します。

アクティブな検索トポロジを複製する

検索インデックスにアイテムを持つ検索インストール内の検索トポロジに変更を行うには、まず新しいトポロジ オブジェクトを作成する必要があります。 この新しいトポロジ オブジェクト、つまりアクティブなトポロジの複製を変更するには、検索コンポーネントを追加または削除します。 複製トポロジ オブジェクトに変更を行った後で、その複製をアクティブなトポロジにします。

アクティブなトポロジを複製するには

  1. この手順を実行するユーザー アカウントがファーム管理者グループのメンバーであることを確認します。

  2. SharePoint 管理シェルを開始します。 再利用可能な Microsoft PowerShell オブジェクト参照を作成した SharePoint 管理シェルを既に開いている場合は、代わりに、その開いているシェルを使用します。

  3. Microsoft PowerShell コマンド プロンプトで、次のコマンドを入力します。

    $ssa = Get-SPEnterpriseSearchServiceApplication
    $active = Get-SPEnterpriseSearchTopology -SearchApplication $ssa -Active
    $clone = New-SPEnterpriseSearchTopology -SearchApplication $ssa -Clone -SearchTopology $active
    

    同じ SharePoint 管理シェルを引き続き使用して検索コンポーネントを追加または削除し、検索トポロジをアクティブ化 する場合は 、$cloneで参照できる複製検索トポロジが作成されます。

  4. (省略可) 検索トポロジから検索コンポーネントを削除する場合、検索コンポーネント ID を取得する必要があります。Microsoft PowerShell コマンド プロンプトで、次のコマンドを入力します。

    Get-SPEnterpriseSearchComponent -SearchTopology $clone
    

    コマンドは、複製された検索トポロジ内の検索コンポーネントのリストとそれらのプロパティ (検索コンポーネント ID を含む) を戻します。

検索コンポーネントを追加する

アクティブな検索トポロジは、直接、変更できません。 この手順では、「アクティブな検索トポロジを複製する」で示した複製トポロジ オブジェクトを作成したと想定します。 各検索コンポーネントについて、以下の Microsoft PowerShell コマンドレットを使用できます。

  • New-SPEnterpriseSearchAdminComponent

  • New-SPEnterpriseSearchAnalyticsProcessingComponent

  • New-SPEnterpriseSearchContentProcessingComponent

  • New-SPEnterpriseSearchCrawlComponent

  • New-SPEnterpriseSearchQueryProcessingComponent

注:

インデックス コンポーネントを追加する手順は異なります。 詳細については、「SharePoint Server でインデックス コンポーネントを管理する」を参照してください。

検索コンポーネントを追加するには

  1. この手順を実行するユーザー アカウントがファーム管理者グループのメンバーであることを確認します。

  2. SharePoint 管理シェルを開始します。 再利用可能な Microsoft PowerShell オブジェクト参照を作成した SharePoint 管理シェルを既に開いている場合は、代わりに、その開いているシェルを使用します。

  3. Microsoft PowerShell コマンド プロンプトで、次のコマンドを入力します。

    New-SPEnterpriseSearch<SearchComponent> -SearchTopology $clone -SearchServiceInstance $<host n >
    

    詳細は次のとおりです。

    • <SearchComponent> は、追加する検索コンポーネントの種類の名前です。

    • $clone is the cloned topology that you are changing. See Clone the active search topology.

    • $<host n> は、検索コンポーネントを追加するサーバー上の実行中の検索サービス インスタンスへの PowerShell オブジェクト参照です。 See Start a search service instance on a server.

    たとえば、以下のコマンドは、Search Service インスタンス参照 $hostA によって識別されたサーバー上の複製トポロジに、コンテンツ処理コンポーネントを追加します。

    New-SPEnterpriseSearchContentProcessingComponent -SearchTopology $clone -SearchServiceInstance $hostA
    
  4. 新しい検索コンポーネントが複製トポロジに追加されたことを確認します。 Microsoft PowerShell コマンド プロンプトで、次のコマンドを入力します。

    Get-SPEnterpriseSearchComponent -SearchTopology $clone
    

検索コンポーネントを削除する

検索コンポーネントを削除するには、Windows PowerShell を使用する必要があります。 アクティブな検索トポロジは、直接、変更できません。 この手順では、「アクティブな検索トポロジを複製する」で示した複製トポロジ オブジェクトを作成したと想定します。

注:

インデックス コンポーネントを削除する手順は異なります。 詳細については、「SharePoint Server でインデックス コンポーネントを管理する」を参照してください。

検索コンポーネントを削除するには

  1. この手順を実行するユーザー アカウントがファーム管理者グループのメンバーであることを確認します。

  2. SharePoint 管理シェルを開始します。 再利用可能な Microsoft PowerShell オブジェクト参照を作成した SharePoint 管理シェルを既に開いている場合は、代わりに、その開いているシェルを使用します。

  3. 最新のアクティブなトポロジが正常であり、削除しようとしている検索コンポーネントが Active であることを確認してください。 サーバーの全体管理の [検索管理] ページで検索トポロジの状態を表示するか、Windows PowerShell コマンドレット Get-SPEnterpriseSearchStatusを実行します。

  4. Microsoft PowerShell コマンド プロンプトで、次のコマンドを入力します。

    Remove-SPEnterpriseSearchComponent -Identity <Search component id> -SearchTopology $clone
    

    詳細は次のとおりです。

  5. 確認を求めるメッセージが表示されたら、その検索コンポーネントを削除することを確認します。

検索コンポーネントを移動する

サーバー間で検索コンポーネントを移動する場合、古い検索コンポーネントを削除する前に、検索トポロジに新しい検索コンポーネントを追加することを推奨します。

検索コンポーネントを移動するには

  1. アクティブな検索トポロジを複製します。 「アクティブな検索トポロジを複製する」を参照してください。

  2. 検索コンポーネントを最終的にホストするサーバーに、新しい検索コンポーネントを追加します。 「検索コンポーネントを追加する」を参照してください。

  3. 検索トポロジをアクティブ化します。 このトポロジには、1 つの余分な検索コンポーネントがあります。 「検索トポロジをアクティブ化する」を参照してください。

  4. 最新のアクティブなトポロジが正常であることを確認してください。 サーバーの全体管理の [検索管理] ページで検索トポロジの状態を表示するか、Windows PowerShell コマンドレット Get-SPEnterpriseSearchStatusを実行します。

  5. 検索トポロジを、再度、複製します。 「アクティブな検索トポロジを複製する」を参照してください。

  6. 余分な検索コンポーネントを削除します。 「検索コンポーネントを削除する」を参照してください。

  7. 検索トポロジを、再度、アクティブ化します。 「検索トポロジをアクティブ化する」を参照してください。

検索トポロジをアクティブ化する

検索トポロジをアクティブ化するには、Windows PowerShell を使用する必要があります。

検索トポロジをアクティブ化するには

  1. この手順を実行するユーザー アカウントがファーム管理者グループのメンバーであることを確認します。

  2. SharePoint 管理シェルを開始します。 再利用可能な Microsoft PowerShell オブジェクト参照を作成した SharePoint 管理シェルを既に開いている場合は、代わりに、その開いているシェルを使用します。

  3. Microsoft PowerShell コマンド プロンプトで、次のコマンドを入力します。

    Set-SPEnterpriseSearchTopology -Identity $clone
    

    詳細は次のとおりです。

  4. 新しいトポロジがアクティブであることを確認します。 Windows PowerShell コマンド プロンプトで、次のコマンドを入力します。

    Get-SPEnterpriseSearchTopology -Active -SearchApplication $ssa
    

    このコマンドにより、アクティブなトポロジと非アクティブなトポロジの概要が返されます。たとえば、次のように表示されます。

    TopologyId     : fce8507d-61c6-4498-8038-4fd2d0a62c6e
    CreationDate   : 1/30/2016 2:52:00 AM
    State          : Inactive
    ComponentCount : 6
    TopologyId     : b63d48b2-df5c-41be-a7f4-9abaee483611
    CreationDate   : 1/30/2016 4:30:00 AM
    State          : Active
    ComponentCount : 7
    

    アクティブなトポロジのコンポーネント カウントに変更が反映されるのを確認できます。