SQL ServerデータベースにProductsテーブルがあり、フルテキストインデックス処理を使用する従来のストアドプロシージャのトラブルシューティングが必要です。ここでは、Productsテーブルに2つのフィールドID、Keywordsがあるとします。キーワードフィールドには次の情報が入力されます。SQLの問題:CONTAINS()を使用しても機能しませんがLIKEは正常に動作します
ローランドSA-300このローランドSA-300は、MINT状態の です。
SELECT * FROM Products WHERE CONTAINS(Keywords, ' SA-300 ') SELECT * FROM Products WHERE CONTAINS(Keywords, 'SA-300') SELECT * FROM Products WHERE CONTAINS(Keywords, '"SA-300"') SELECT * FROM Products WHERE CONTAINS(Keywords, '"*SA-300*"')
:私は、次のいずれかの文を実行したときに
SELECT * FROM Products WHERE Keywords LIKE '%SA-300%'
は、しかし、私はゼロの結果を得る:私は次のステートメントを実行すると
、私はレコードを取得することができていますしかし、私はこれらのいずれかを実行すると結果が得られるので、CONTAINS()関数が動作していることがわかります:
SELECT * FROM Products WHERE CONTAINS(Keywords, ' Roland ')
SELECT * FROM Products WHERE CONTAINS(Keywords, 'Roland')
SELECT * FROM Products WHERE CONTAINS(Keywords, '"Roland"')
SELECT * FROM Products WHERE CONTAINS(Keywords, '"*Roland*"')
SELECT * FROM Products WHERE CONTAINS(Keywords, 'Roland')
CONTAINS()関数が 'SA-300'の用語で機能しない理由を理解する必要があります。私は全文索引に慣れているので、どんな助けもありがとうございます。
ヒントはありませんが、インデックスが最新であることを確認しましたか? – MichaelGG