Частичные поиски на сервере Sql? - PullRequest
0 голосов
/ 27 июня 2018

Каков наилучший способ поиска в базе данных 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 результата должны вернуться, и я не уверен, что «лайк» может это сделать.

...