テキスト列にフルテキストインデックスがある場合はそれが使用され、そうでない場合はO(N²)の方法がLIKE '%word%'
に低下するsqlserverクエリを作成する必要がありますか?インデックスが存在する場合にフルテキスト検索を使用するSQLクエリを作成する方法はありますか。
私は答えは同じようなものになると信じて:クエリはプログラムによって生成されます
IF has_full_text_index('mycolumn')
select mytable_id from mytable where contains(mycolumn, 'word')
ELSE
select mytable_id from mytable where mycolumn like '%word%'
ENDIF
。クエリには、必ず一致する単語が1つだけあります。列にフルテキストインデックスがあるかどうかを調べるテストは、すばやく行う必要があります。
あなたの質問は私には意味がないと思います。それはあなたのテーブルです - 事前に列にフルテキストインデックスがあるかどうかは分かりませんか? –
いいえ、しかし、私はこのコードが必要な複雑な環境に入ることを望んでいませんでした。 説明する最も簡単なケースは、インデックスサービスを有効にせずにデータベースを使用するユーザーがいて、ソフトウェアが引き続き動作する必要があるということです。 – neves