Каков наилучший способ поиска в базе данных sql, мой сайт, который я создаю, будет выполнять множество пользовательских поисков.
Сначала я подумал об использовании полнотекстового поиска на сервере sql, но теперь обнаружил, что он не поддерживает частичные совпадения
Скажи, что я получил эти данные.
Procter & Gamble
Google
Stackoverflow
A&M Records
и я хочу попробовать найти что-нибудь с & в нем
SELECT *
FROM dbo.[Companies]
WHERE CONTAINS(Name,'&')
select * FROM [Companies]
WHERE FREETEXT(Name,'&')
оба они не возвращают никаких результатов. Я должен был бы использовать
select * FROM [Companies]
WHERE Name like '%&%'
но, насколько я понимаю, похоже, что полное сканирование таблицы может быть медленным. Поэтому я не уверен, как это повлияет на скорость моего сайта, когда я просматриваю около 5 миллионов записей.
Я знаю, что есть упругий поиск, но я боюсь, что это займет у меня слишком много времени, чтобы учиться, и я в сжатые сроки, поэтому мне нужно что-то, что может работать на время, а затем я могу стремиться к чему-то лучшему.
Редактировать
Я должен добавить еще один вариант использования, который мне нужно обработать, это что-то вроде продукта (например, телевизор с почти таким же номером модели, но с некоторыми буквами в конце), например
Product A - 123456
Product B - 123456A
Product C - 123456B
Таким образом, если кто-то наберет «123456A», то все 3 результата должны вернуться, и я не уверен, что «лайк» может это сделать.