1

現在SQL2000サーバーで実行されているFreeText検索に問題があります。

会社名を含む約130万行のテーブルで、FreeTextクエリを使用しようとしています。ただし、SQL Serverはインデックスを作成するときに特殊文字と単一文字を削除するため、クエリを送信するときにコードは同じことを行います。

たとえば、「Texas A&M」のような検索では、「Texas」をクエリするだけで、無関係なレコードが大量に返されます。

この種の検索クエリを処理するためのベストプラクティスは何ですか?この問題は、SQL Serverの新しいバージョンにアップグレードすることで修正できますか?

現時点では、Luceneのようなサードパーティのインデックス作成エンジンは、問題が解決したとしてもオプションではありませんが、私にはわかりません。

4

3 に答える 3

0

次のような1文字のワイルドカード「_」を使用してみてください。

WHERE myColumn like 'Texas_A_&_M'

また

WHERE myColumn like 'Texas%A_&_M' 
于 2010-02-23T18:32:08.513 に答える
0

SQL Server 2005 の改善によって問題が解決するかどうかを確認できます: SQL Server 2005 全文検索: 内部と機能強化

于 2010-02-23T17:30:41.920 に答える
0

長い文章ではなく会社名を検索する場合は、LIKE を使用してみませんか?

...
WHERE
    CompanyName LIKE '%Texas A%&%M%'
于 2010-02-23T18:18:02.987 に答える