MS-SQLフリーテキスト検索で単一の文字検索用語を処理する方法は?
-
22-09-2019 - |
質問
現在、SQL 2000サーバーで実行されているフリーテキスト検索に問題があります。
会社名を含む約130万行のテーブルで、フリーテキストクエリを使用しようとしています。ただし、SQL Serverはインデックスを構築するときに特殊文字と単一文字を削除するため、クエリを送信するときにコードも同じことを行います。
たとえば、「Texas A&M」のような検索では、無関係なレコードを大量に返す「テキサス」をクエリするだけです。
これらの種類の検索クエリを処理するための最良の実践は何ですか?この問題は、SQL Serverの新しいバージョンにアップグレードすることで修正されますか?
この時点で、Luceneのようなサードパーティのインデックス作成エンジンは、問題を解決する場合でも選択肢ではありません。
解決
次のような単一のキャラクターWildCard '_'を使用してみてください。
WHERE myColumn like 'Texas_A_&_M'
また
WHERE myColumn like 'Texas%A_&_M'
他のヒント
SQL Server 2005の改善が問題を解決できるかどうかを確認できます。SQL Server 2005フルテキスト検索:内部と機能強化, 、特にノイズワードについて 開発者向けの新機能.
会社名を検索していて、テキストの長いパッセージを検索している場合、なぜ単に使用してはいけませんか?
...
WHERE
CompanyName LIKE '%Texas A%&%M%'
所属していません StackOverflow