先日、2026/03/04 時点のSQL Server 2025 / Azue SQL Database で日本語でフルテキスト検索を実行する際の注意点 という投稿をしました。
この内容の続報となります。
SQL Server 2025 の既知の問題への追加
本問題ですが、SQL Server 2025 の既知の問題 として追加されました。
問題: Index Version2 が有効になっていると、特定の言語で変曲形式を使用するクエリが Full-Text に失敗する
Full-Text は、Freetext、Freetexttable、または Contains および Containstable 内の
FORMSOF(INFLECTIONAL)引数に対してステマーを使用します。 ステマーが登録されていないか、使用できない言語の場合、変曲形式を参照するクエリは次のエラーで失敗する可能性があります。
修正予定は CU4 となるようで、今後の更新プログラムで対応がされる予定です。
ワークアラウンドとしての v1 を使用した実行
現状、この問題のワークアラウンドとして、フルテキストインデックス v1 を使用することが回避策として挙げられています。
回避策: ステマーが登録されていない言語では、変曲形式のクエリを使用しないでください。 詳細については、「 バージョン 2 のワード ブレーカー」を参照してください。 アプリケーションがこのような言語の変曲的または言語的な検索動作に強い依存関係を持っている場合は、代わりに Full-Text Index Version 1 を使用するようにデータベースを構成します。
SQL Server 2025 で、フルテキストインデックス v1 を使用するためには、SQL Server 2022 から、フィルター / ワードブレーカー / その他依存バイナリのDLL を取得して、SQL Server 2025 にコピーする必要があります。
これで、動作する言語もあるようですが、日本語 (Japanese) の指定 (日本語以外にも問題が発生する言語がある) については、v2 の既知の問題と同様に次のエラーが発生する関数が存在しています。(v2 の場合は 30053 ですが、v1 の場合 30010 のエラーとなります)
メッセージ 30010、レベル 16、状態 1、行 10
フルテキスト クエリの実行中にエラーが発生しました。一般的な原因には、単語区切りのエラーまたはタイムアウト、FDHOST の権限/ACL の問題、サービス アカウントの権限の不足、IFilters の誤動作、FDHost および sqlservr.exe との通信チャネルの問題などがあります。最近 SQL2025 へのインプレース アップグレードを実行した場合は、https://aka.ms/sqlfulltext. を参照してください。
日本語のような、v1 でエラーが発生する言語については、DLL のコピー以外に「load_os_resources」の設定変更も必要となるようです。
オペレーティング システムのワード ブレーカー、ステミング機能、フィルターを SQL Server のこのインスタンスに登録して使用するかどうかを示します。
具体的には sp_fulltext_service を実行して、設定を 1 -> 0 に変更します。
EXEC sp_fulltext_service 'load_os_resources', 0 EXEC sp_fulltext_service 'restart_all_fdhosts' GO
次の環境では、load_os_resources は「0」が設定されているようです。
- SQL Server 2022 をクリーンインストールした環境
- SQL Server 2022 を 2025 にインプレースアップグレードした環境
しかし、SQL Server 2025 をクリーンインストールした環境では、「1」が既定で設定されるように変更されているようでした。
この場合 (1 に設定されている場合) は、v1 に切り替えてもステマーに起因したエラーが発生しているようです。
現状のワークアラウンドとしては v1 を使用することになりますが、v1 を使用しても、指定した言語によってエラーが発生する場合は、load_os_resources の設定変更も併せて対応が必要となるようです。