まず、本番サーバーで全文検索のインデックス作成を有効にする必要があります。そのため、範囲内にない場合は、これを使用したくないでしょう。
ただし、それがすでに準備ができている場合は、全文検索は比較的簡単です。
T-SQLには、全文検索に使用される4つの述語があります。
- フリーテキスト
- フリーテキストテーブル
- 含む
- 含む
FREETEXTは最も単純で、次のように実行できます。
SELECT UserName
FROM Tbl_Users
WHERE FREETEXT (UserName, 'bob' )
Results:
JimBob
Little Bobby Tables
FREETEXTTABLEは、結果をテーブルとして返すことを除いて、FreeTEXTと同じように機能します。
T-SQLの全文検索の真の力は、CONTAINS(およびCONTAINSTABLE)述語から得られます...これは巨大なので、その使用法を次の場所に貼り付けます。
CONTAINS
( { column | * } , '< contains_search_condition >'
)
< contains_search_condition > ::=
{ < simple_term >
| < prefix_term >
| < generation_term >
| < proximity_term >
| < weighted_term >
}
| { ( < contains_search_condition > )
{ AND | AND NOT | OR } < contains_search_condition > [ ...n ]
}
< simple_term > ::=
word | " phrase "
< prefix term > ::=
{ "word * " | "phrase * " }
< generation_term > ::=
FORMSOF ( INFLECTIONAL , < simple_term > [ ,...n ] )
< proximity_term > ::=
{ < simple_term > | < prefix_term > }
{ { NEAR | ~ } { < simple_term > | < prefix_term > } } [ ...n ]
< weighted_term > ::=
ISABOUT
( { {
< simple_term >
| < prefix_term >
| < generation_term >
| < proximity_term >
}
[ WEIGHT ( weight_value ) ]
} [ ,...n ]
)
これは、次のようなクエリを記述できることを意味します。
SELECT UserName
FROM Tbl_Users
WHERE CONTAINS(UserName, '"little*" NEAR tables')
Results:
Little Bobby Tables
幸運を :)