フルテキスト インデックス作成のトラブルシューティング

適用対象:SQL ServerAzure SQL データベースAzure SQL Managed Instance

全文インデックスの失敗のトラブルシューティング

全文インデックスを入力または維持する際、以下のリストで説明する理由により、全文インデクサが1行以上をインデックスできないことがあります。 このような行レベルのエラーでは、インデックスの作成は中止されることなく完了します。 インデクサーはこれらの行をスキップするため、これらの行に含まれる内容をクエリできません。

インデックス作成は、次の場合に失敗する可能性があります。

  • インデクサーはフィルターやワードブレーカーのコンポーネントを見つけたり読み込んだりできません。 この失敗は、テーブルの行にSQL Serverのインスタンスに登録されていない言語のドキュメント形式や内容が含まれている場合に発生します。 この失敗は、登録されたワードブレーカーやフィルターコンポーネントに署名がされていない場合や、コンポーネントの読み込み時に署名検証が失敗した場合にも起こり得ます。 Azure SQL と Azure SQL Managed Instance はサードパーティのワードブレーカーをサポートしていません。

  • ワードブレーカーやフィルターなどのコンポーネントが失敗し、インデクサにエラーを返します。 この失敗は、インデックスされる文書が破損していて、フィルターが文書からテキストを抽出できない場合に起こります。 この障害は、フルテキストフィルターデーモンホスト(fdhost.exe)のメモリ制限により、特定のサイズを超える単一の行の内容を処理できない場合にも発生します。

行レベルのエラーが発生するたびに、クロール ログにエラーの理由の詳細が記録されます。 エラー数は、フルまたは増分の取り込みの終了時に集計されます。

その他のエラーにより、インデックス作成プロセスに影響が生じ、データの反映が完了しなくなる可能性があります:

  • 全文索引は全文カタログが含める行数の上限を超えています。

  • インデックス対象のテーブル上でクラスタ化されたインデックスや全文キーインデックスを変更、削除、または再構築します。

  • ハードウェア エラーやディスクの破損などによりフルテキスト カタログが破損する。

  • 全文インデックス化されているテーブルを含むファイルグループはオフラインになるか、読み取り専用になります。

すべての重要なフルテキスト インデックス作成操作の最後、または作成が完了していないことがわかったときは、クロール ログを確認します。

符号なし成分

既定では、フルテキスト インデクサは、読み込むフィルターおよびワード ブレーカーが署名されていることを必要とします。 署名されていない場合(カスタムコンポーネントをインストールする際に起こり得ます)、全文インデクサーを署名検証を無視するように設定する必要があります。

重要

署名の検証を無視すると、SQL Server のインスタンスのセキュリティが低くなります。 実装する部品には必ず署名するか、購入した部品に署名を確実にしてください。 署名コンポーネントに関する情報は sp_fulltext_serviceを参照してください。

トランザクションログ復元後の全文インデックスが一貫性のない状態にある

データベースのトランザクションログを復元する際に、全文インデックスが一貫していないという警告が表示されることがあります。 この警告は、データベースバックアップ後にテーブルの全文インデックスが変更されたために現れます。 フルテキスト インデックスを一貫性のある状態に戻すには、テーブルに対してすべてのカタログの作成 (クロール) を実行します。 詳細については、「 フルテキスト インデックスの作成」をご覧ください。