以前、SQL Server 2025 のフルテキスト検索の破壊的な変更についての情報 という投稿を書きました。
この投稿の中では、次の確認を行っています。
私の環境では、「日本語を使用した FREETEXTTABLE の実行時」に 「30053」のエラーになるという事象が発生しており、この事象を解決できていません。
この事象についてサービスリクエスト等を使用して、問い合わせを行っていたのですが、2026/03/04 時点の製品では、この動作については製品の問題であるということがかくにんできました。
今後、SQL Server 2025 の既知の問題 にも追記されるということなので最新の情報は、このドキュメントをウォッチしてもらえればと思いますが、投稿時点の情報を記載しておきたいと思います。
発生する環境
エラーとなるクエリの例
クエリとしては次のようなクエリの実行時にエラーとなります。
SELECT * FROM FT_TEST WHERE CONTAINS(C2 , ' FORMSOF (INFLECTIONAL, ride) ', LANGUAGE 'Japanese'); GO SELECT * FROM FREETEXTTABLE(FT_TEST, C2, N'テスト', LANGUAGE N'Japanese') AS ft GO SELECT * FROM FT_TEST WHERE FREETEXT (C2, N'テスト', LANGUAGE N'Japanese') GO
エラーを確認した環境
私は、次の環境では、フルテキスト検索で FREETEXT / FREETEXTTABLE 等で「LANGUAGE N’Japanese’」(1041 での指定も同様) を実行した場合に発生することを確認しています。
- SQL Server 2025 CU2
- FULLTEXT_INDEX_VERSION=1/2 の両パターンで発生
- 2026/03/04 時点の Azure SQL Database
- FULLTEXT_INDEX_VERSION=2 を使用した場合
- SQL Database の場合 FULLTEXT_INDEX_VERSION=1 では発生しなかった
Managed Instance については確認をしていないのですが、SQL Server 2025 相当の環境にバージョンアップされている環境であれば、使用されているモジュールが同じになるはずですので、本事象が発生するかと思います。
事象が発生すると、フルテキスト検索用の関数を実行した際に次のようなエラーが発生します。(v1 を使用した場合は「30010」で同様のエラーとなります)
メッセージ 30053、レベル 16、状態 102、行 14
フルテキスト クエリの実行中にエラーが発生しました。一般的な原因には、単語区切りのエラーまたはタイムアウト、FDHOST の権限/ACL の問題、サービス アカウントの権限の不足、IFilters の誤動作、FDHost および sqlservr.exe との通信チャネルのイシューなどがあります。
エラーが発生する可能性のある言語
私は日本語での挙動を主に確認していたのですが、他の言語についても確認をしてみたところ、次の言語でも発生する可能性がありそうです。
- Neutral (0)
- Arabic (1025)
- Traditional Chinese (1028)
- Finnish (1035)
- Hebrew (1037)
- Hungarian (1038)
- Japanese (1041)
- Korean (1042)
- Slovak (1051)
- Thai (1054)
- Turkish (1055)
- Slovenian (1060)
- Estonian (1061)
- Latvian (1062)
- Lithuanian (1063)
- Vietnamese (1066)
- Simplified Chinese (2052)
- Chinese (Hong Kong SAR, PRC) (3076)
- Chinese (Singapore) (4100)
- Chinese (Macao SAR) (5124)
本事象はこれらの言語で FREETEXT / FREETEXTTABLE を使用した場合に発する可能性があります。
エラーの発生原因
本事象ですが、語幹抽出器 (Stemmer) の問題となっており、互換検出器が設定されていないすべての言語が影響するようです。
どの言語で設定されていないのかを確認する方法は見当たらなかったのですが、エラーとなった上述の言語では設定されていない可能性があるのでしょうね。
現時点では、SQL Server 2025 の場合は、CONTAINS / CONTAINSTABLE で大体をすることができるか、Azure SQL Database では、v1 を使用するということがワークアラウンドとなるようです。
今後の更新プログラムで修正される予定となりましたので、エラーが発生し、他の方法で代替ができない場合は更新プログラムの提供を待つ必要があるかと。