ISBN 列を検索して、部分一致が返されるようにする必要があります。LIKE の使用は正確ですが、非常に遅く、約 2 ~ 3 秒です。
select * from Isbns where isbn like '%1234567890123%'
-- returns 1 result: 1234567890123
select * from Isbns where isbn like '%12345678%'
-- returns 2 results: 1234567890123, 1234567811111.
フルテキスト インデックスを使用すると、検索は瞬時に行われますが、返される結果が多すぎます。
select * from Isbns where freetext(isbn, '"1234567890123"')
-- returns thousands of results, such as the exact match of 1234567890123,
-- but also fuzzy matches such as: 1234567770123, 1234567778883, etc.
主な違いは、LIKE は用語の先頭と末尾のワイルドカードに基づいて一致するのに対し、FREETEXT (および CONTAINS) は、""
. ほとんどすべての ISBN は同じ少数の数字で始まり、その後の数字にほとんど差異がないため、あまりにも多くの一致が返されています。
FREETEXT または CONTAINS を LIKE と同様に実行する方法、またはフルテキスト インデックスを利用して検索する他の方法はありますか?