フルテキスト検索でLIKE述語よりも最適化されたフレーズ検索を行うことができると思っていましたが、正確に。リテラルフレーズを検索する最良の方法
リテラル文字列のテーブルのTEXTフィールドの何千もの行を検索する最も効果的な方法は "LIKE"ですか?それは完全一致があるはずだ
...どうやら
フルテキスト検索でLIKE述語よりも最適化されたフレーズ検索を行うことができると思っていましたが、正確に。リテラルフレーズを検索する最良の方法
リテラル文字列のテーブルのTEXTフィールドの何千もの行を検索する最も効果的な方法は "LIKE"ですか?それは完全一致があるはずだ
...どうやら
、CONTAINS
がLIKE
クエリよりも高速です...
(プロファイリングは、そのプレゼンテーションのページ19で見つけることができます)
どのバージョンのSQL Serverを使用していますか? TEXTをVARCHAR(MAX)に置き換えることをお勧めします(SQL Server 2005以降)。
なぜフルテキストが機能しないと言いますか?どのようにフルテキストを設定しましたか?フルテキストクエリはどのように見えますか?あなたが列に適切なインデックスを持っている場合
マルク・
LIKE(文字列%)がより速く動作しますし、あなただけの値の先頭に「文字列」を探しています。文字列が値の真ん中にある場合は、LIKE(%string%)を使用する必要があります。この場合、テーブルスキャンが実行され、速度が遅くなります(ほとんど全文検索よりも遅い)。 フルテキスト検索のCONTAINS()関数を使用して正確に一致させることができます。
SQL Server Management Studioを使用して全文をセットアップし、自分のテーブルの1つのフィールドに全文索引付きフルテキストカタログを作成しました。 マイクエリ: SELECT TOP 10 serial_no、writer_id、書き込み、assignment_type、subdate、( ' "一度それを取る"' 書き込み)が含まれていwrite_onsite FROMタイトル – Caveatrob
- 問合せが、最初に取ってきたものを返します。 1人の単語の数、次に1回の単語。私はちょうどリテラルフレーズを "一度それを取る" – Caveatrob
まだ明確ではない:どのバージョンのSQL Server? –