SharePoint Server で検索コンポーネントを管理する
適用対象:2016 2019 Subscription Edition SharePoint 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 つのサーバーで SharePoint 管理シェルを開始します。
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>) を使用して、検索コンポーネントを追加するときにターゲット サーバーを指定します。
すべての検索サービス インスタンスが実行中になるまで待ちます。 検索サービス インスタンスごとに、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 を使用する必要があります。
アクティブな検索トポロジを表示するには
この手順を実行するユーザー アカウントがファーム管理者グループのメンバーであることを確認します。
SharePoint 管理シェルを開始します。 再利用可能な Microsoft PowerShell オブジェクト参照を作成した SharePoint 管理シェルを既に開いている場合は、代わりに、その開いているシェルを使用します。
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 は、検索コンポーネントを削除する場合にのみ必要です。
すべての検索コンポーネントのリストを表示するには
この手順を実行するユーザー アカウントがファーム管理者グループのメンバーであることを確認します。
SharePoint 管理シェルを開始します。 再利用可能な SharePoint 管理シェル オブジェクト参照を作成した開いている SharePoint 管理シェルが既にある場合は、代わりに開いているシェルを使用します。
Microsoft PowerShell コマンド プロンプトで、次のコマンドを入力します。
$ssa = Get-SPEnterpriseSearchServiceApplication $active = Get-SPEnterpriseSearchTopology -SearchApplication $ssa -Active Get-SPEnterpriseSearchComponent -SearchTopology $active
コマンドは、アクティブな検索トポロジ内の検索コンポーネントのリストとそれらのプロパティを戻します。
アクティブな検索トポロジを複製する
検索インデックスにアイテムを持つ検索インストール内の検索トポロジに変更を行うには、まず新しいトポロジ オブジェクトを作成する必要があります。 この新しいトポロジ オブジェクト、つまりアクティブなトポロジの複製を変更するには、検索コンポーネントを追加または削除します。 複製トポロジ オブジェクトに変更を行った後で、その複製をアクティブなトポロジにします。
アクティブなトポロジを複製するには
この手順を実行するユーザー アカウントがファーム管理者グループのメンバーであることを確認します。
SharePoint 管理シェルを開始します。 再利用可能な Microsoft PowerShell オブジェクト参照を作成した SharePoint 管理シェルを既に開いている場合は、代わりに、その開いているシェルを使用します。
Microsoft PowerShell コマンド プロンプトで、次のコマンドを入力します。
$ssa = Get-SPEnterpriseSearchServiceApplication $active = Get-SPEnterpriseSearchTopology -SearchApplication $ssa -Active $clone = New-SPEnterpriseSearchTopology -SearchApplication $ssa -Clone -SearchTopology $active
同じ SharePoint 管理シェルを引き続き使用して検索コンポーネントを追加または削除し、検索トポロジをアクティブ化 する場合は 、$cloneで参照できる複製検索トポロジが作成されます。
(省略可) 検索トポロジから検索コンポーネントを削除する場合、検索コンポーネント ID を取得する必要があります。Microsoft PowerShell コマンド プロンプトで、次のコマンドを入力します。
Get-SPEnterpriseSearchComponent -SearchTopology $clone
コマンドは、複製された検索トポロジ内の検索コンポーネントのリストとそれらのプロパティ (検索コンポーネント ID を含む) を戻します。
検索コンポーネントを追加する
アクティブな検索トポロジは、直接、変更できません。 この手順では、「アクティブな検索トポロジを複製する」で示した複製トポロジ オブジェクトを作成したと想定します。 各検索コンポーネントについて、以下の Microsoft PowerShell コマンドレットを使用できます。
New-SPEnterpriseSearchAdminComponent
New-SPEnterpriseSearchAnalyticsProcessingComponent
New-SPEnterpriseSearchContentProcessingComponent
New-SPEnterpriseSearchCrawlComponent
New-SPEnterpriseSearchQueryProcessingComponent
注:
インデックス コンポーネントを追加する手順は異なります。 詳細については、「SharePoint Server でインデックス コンポーネントを管理する」を参照してください。
検索コンポーネントを追加するには
この手順を実行するユーザー アカウントがファーム管理者グループのメンバーであることを確認します。
SharePoint 管理シェルを開始します。 再利用可能な Microsoft PowerShell オブジェクト参照を作成した SharePoint 管理シェルを既に開いている場合は、代わりに、その開いているシェルを使用します。
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
新しい検索コンポーネントが複製トポロジに追加されたことを確認します。 Microsoft PowerShell コマンド プロンプトで、次のコマンドを入力します。
Get-SPEnterpriseSearchComponent -SearchTopology $clone
検索コンポーネントを削除する
検索コンポーネントを削除するには、Windows PowerShell を使用する必要があります。 アクティブな検索トポロジは、直接、変更できません。 この手順では、「アクティブな検索トポロジを複製する」で示した複製トポロジ オブジェクトを作成したと想定します。
注:
インデックス コンポーネントを削除する手順は異なります。 詳細については、「SharePoint Server でインデックス コンポーネントを管理する」を参照してください。
検索コンポーネントを削除するには
この手順を実行するユーザー アカウントがファーム管理者グループのメンバーであることを確認します。
SharePoint 管理シェルを開始します。 再利用可能な Microsoft PowerShell オブジェクト参照を作成した SharePoint 管理シェルを既に開いている場合は、代わりに、その開いているシェルを使用します。
最新のアクティブなトポロジが正常であり、削除しようとしている検索コンポーネントが Active であることを確認してください。 サーバーの全体管理の [検索管理] ページで検索トポロジの状態を表示するか、Windows PowerShell コマンドレット
Get-SPEnterpriseSearchStatus
を実行します。Microsoft PowerShell コマンド プロンプトで、次のコマンドを入力します。
Remove-SPEnterpriseSearchComponent -Identity <Search component id> -SearchTopology $clone
詳細は次のとおりです。
<Search component id> is the Id of the search component that you want to remove. Use the search component Id from the clone topology. To retrieve the search component Id, see step 4 in Clone the active search topology.
$clone is the cloned topology that you are changing. See Clone the active search topology.
確認を求めるメッセージが表示されたら、その検索コンポーネントを削除することを確認します。
検索コンポーネントを移動する
サーバー間で検索コンポーネントを移動する場合、古い検索コンポーネントを削除する前に、検索トポロジに新しい検索コンポーネントを追加することを推奨します。
検索コンポーネントを移動するには
アクティブな検索トポロジを複製します。 「アクティブな検索トポロジを複製する」を参照してください。
検索コンポーネントを最終的にホストするサーバーに、新しい検索コンポーネントを追加します。 「検索コンポーネントを追加する」を参照してください。
検索トポロジをアクティブ化します。 このトポロジには、1 つの余分な検索コンポーネントがあります。 「検索トポロジをアクティブ化する」を参照してください。
最新のアクティブなトポロジが正常であることを確認してください。 サーバーの全体管理の [検索管理] ページで検索トポロジの状態を表示するか、Windows PowerShell コマンドレット
Get-SPEnterpriseSearchStatus
を実行します。検索トポロジを、再度、複製します。 「アクティブな検索トポロジを複製する」を参照してください。
余分な検索コンポーネントを削除します。 「検索コンポーネントを削除する」を参照してください。
検索トポロジを、再度、アクティブ化します。 「検索トポロジをアクティブ化する」を参照してください。
検索トポロジをアクティブ化する
検索トポロジをアクティブ化するには、Windows PowerShell を使用する必要があります。
検索トポロジをアクティブ化するには
この手順を実行するユーザー アカウントがファーム管理者グループのメンバーであることを確認します。
SharePoint 管理シェルを開始します。 再利用可能な Microsoft PowerShell オブジェクト参照を作成した SharePoint 管理シェルを既に開いている場合は、代わりに、その開いているシェルを使用します。
Microsoft PowerShell コマンド プロンプトで、次のコマンドを入力します。
Set-SPEnterpriseSearchTopology -Identity $clone
詳細は次のとおりです。
- $clone is the cloned topology that you are changing. See Clone the active search topology.
新しいトポロジがアクティブであることを確認します。 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
アクティブなトポロジのコンポーネント カウントに変更が反映されるのを確認できます。