Оператор поиска SQL, как Google? - PullRequest
3 голосов
/ 11 октября 2010

Существует ли какой-то оператор SQL, который я могу использовать для поиска по 1 столбцу в моей таблице, который похож на то, что я ищу.

Например, если я ищу что-то связанное с"Автомобиль", но я пишу его как "Кар", он должен возвращать предметы "автомобиля".

Или

Если я ищу "Моя компания" и пишу это как "Моя компания"он все равно должен повторить" Моя компания ".

Select * from TableName where Column Like '%company%' вернет" Моя компания ", но мне нужно больше, так как пользователь не всегда знает, как пишется.Поэтому мне нужно что-то более продвинутое, например, небольшое приложение Google или что-то в этом роде ...

Ответы [ 5 ]

2 голосов
/ 11 октября 2010

Это довольно сложная проблема. Быстрый ответ - использовать алгоритм SQL Server soundex , но он довольно безнадежен. Попробуйте предложения на этот SO ответ . (Обновлено)

2 голосов
/ 11 октября 2010

Эта функция есть в текстовых сервисах, поэтому, если вы создаете индекс полнотекстового поиска, вы должны иметь возможность использовать эту функцию.

Посмотрите здесь:

http://msdn.microsoft.com/en-us/library/ms187384.aspx

http://msdn.microsoft.com/en-us/library/ms142571.aspx

1 голос
/ 11 октября 2010

Прочитайте эту запись в блоге: http://googlesystem.blogspot.com/2007/04/simplified-version-of-googles-spell.html

Это то, что вы можете реализовать с помощью SQL, но это не встроенная функция.

0 голосов
/ 11 октября 2010

Нет. Полнотекстовый индекс может приблизить вас в зависимости от ваших требований (какие именно функции вы ищете?) Один из вариантов - это свернуть собственную сборку .NET с нужными функциями, добавить ее (CREATE ASSEMBLY) на сервер SQL и использовать ее поиск.

0 голосов
/ 11 октября 2010

Еще один способ помочь пользователям найти то, что они ищут, - ввести опережающий ввод в поле поиска.Если пользователь введет «my», он получит «My Company» в качестве предложения и, скорее всего, согласится с этим.

Вы можете легко реализовать тип вперед, используя jquery или другие библиотеки javascript.Вот список плагинов с опережением типа для jQuery: http://plugins.jquery.com/plugin-tags/typeahead

...