Функциональность "звучит как", "вы имели в виду ЭТО" с использованием полнотекстового поиска в SQL Server 2005
Я реализовал полнотекстовый поиск по базе данных SQL Server 2005 с помощью ключевого слова CONTAINSTABLE. Мне было интересно, есть ли способ добавить функциональность "звуки, как" или "вы имели в виду это" Google, если исходный запрос не дает результатов.
3 ответа
Soundex для SQL Server очень ограничен и расстраивает, я действительно рекомендую вам взглянуть на Lucene.net http://incubator.apache.org/lucene.net/. Lucene - это высокопроизводительная, полнофункциональная библиотека для текстового поиска, которую также очень легко использовать в проектах.NET. Если вам нужна серьезная поисковая система для вашего приложения, переходите на Lucene.
Некоторые функции получены из http://lucene.apache.org/java/docs/features.html:
- ранжированный поиск, лучшие результаты
- вернул первый много мощный запрос
- типы: запросы фраз, подстановочный знак
- запросы, запросы близости, диапазон
- запросы и более полевой поиск (например, название, автор, содержание)
- поиск по диапазону сортировки по любому
- поиск по нескольким индексам
- объединенные результаты позволяют одновременно
- обновление и поиск
SQL Server имеет функции SOUNDEX и DIFFERENCE
Этот связанный ответ SO может быть полезным: Как сделать SQL-запрос более мощным?
Если вы хотите сделать это, вам нужно нормализовать необработанный текст и запросы. Простой пример: если вы хотите иметь возможность поиска по типу значения SOUNDEX, вам потребуется SOUNDEX как для строки запроса, так и для исходных необработанных данных, которые вы запрашиваете. Вы не можете эффективно обрабатывать пространство запросов на лету, поэтому вместо этого вы нормализуете его при создании индекса.
Технически, вам нужно только нормализовать фактический индекс, а не данные, но, поскольку ваши данные, скорее всего, индексируют вас, то их необходимо нормализовать.
Это тот же процесс, что и "определение" слов, удаление множественного числа и т. Д.