1

インデックスを作成できない大きな varchar フィールド (サイズ 2000) を持つテーブル (約 150,000 行と成長中) をクエリしています (たとえそれができたとしても意味がありません)。私はSql Server 2008を使用しています。今まで使用したクエリは次のとおりです。

select * from tbl_name where field_name like '%bla bla%'

(「bla bla」はユーザーが検索した内容による)

パフォーマンスを向上させるために、全文検索機能を使い始めたいと思います (このフィールドには既にカタログとテキスト インデックスが定義されています)。このオプションを使用したクエリについて読んだことから少し混乱しています。以前使用していたクエリとまったく同じ結果を得るには、どのクエリを使用すればよいですか?

  • コメント:
    1. 以前は機能していたように、大文字と小文字を区別しない結果を取得したいと思います (つまり、ユーザーが「LG」を検索すると、「Lg」を含む結果も取得されます)。
    2. ユーザーが「Sams」と入力すると、「Samsung」も表示されます。

ありがとう!エラン。

4

1 に答える 1

2

CONTAINS()1 つの例外を除いて、探している LIKE() 機能が得られます。コメントで、2 番目のエントリ "hhhEranttt" にも一致させたいことがわかりました。残念ながら、サフィックス検索がないため、これは現在不可能です。

他のエントリについては、プレフィックス検索を実行できます。CONTAINS(field_name, '"eran*"')これは、全文検索では大文字と小文字が区別されないため、他のすべてのエントリと一致します。

HTH。

于 2012-11-19T22:51:32.380 に答える