CV データベース テーブルで同じことを行うことになっている 2 つのクエリを実行しています。
CONTAINS
(フルテキスト インデックス テーブル - 履歴書、フルネームなどはすべてインデックスに含まれます)SELECT COUNT(1) FROM [CVDatabase] WHERE CONTAINS ((CVText, fullname, city, CompanyName, jobTitle, targetJobTitle),'"cost accountant*"') AND (Country='South Africa')
結果数: 300
CHARINDEX
(インデックスなし)SELECT COUNT(1) FROM [CVDatabase] WHERE (CHARINDEX ('cost accountant', cvtext) > 0 OR CHARINDEX ('cost accountant', fullname) > 0 OR CHARINDEX ('cost accountant', city) > 0 OR CHARINDEX ('cost accountant', companyname) > 0 OR CHARINDEX ('cost accountant', jobtitle) > 0 OR CHARINDEX ('cost accountant', targetjobtitle) > 0) AND (Country = 'South Africa')
結果数: 339
これは10%以上の差異です。当然のことながらCHARINDEX
、'cost accountant'、'cost accountants' (CONTAINS
ワイルドカードでもキャプチャします) をキャプチャします。CHARINDEX
違いは、キャプチャするがキャプチャしない「cost accountant」の前の文字から生じる可能性がCONTAINS
ありますが、「cost」という単語の前に意味をなす文字は考えられません。
インデックス作成に何か問題があり、すべての結果を取得していない可能性はありますか? 自動変更を追跡するように設定されているため、正しくインデックスを作成する必要があります。