2010-05-12 8 views
4

Я хочу вести поиск по определенной колонке таблицы таким образом, что возвращение результирующего набора должны отвечают соответствующим требованиям следующих 2 условий:SQL Server - процент на основе полнотекстового поиска

  1. Возвращение результирующего набора должны иметь записи 90% из символов соответствует данному поисковому тексту.

  2. Возвратный результирующий набор должен иметь записи, 70% из последовательных символов соответствует данному поисковому тексту.

Это означает, что, когда ищется 10 символов слово Sukhminder, то:

он должен возвращать записи как Sukhmindes, ukhminder, Sukhmindzr, так как он выполняет оба вышеуказанных условий.

Но он не должен возвращать такие записи, как Sukhmixder, потому что он не выполняет второе условие. Точно так же он не должен возвращать запись Сухминцзз, потому что он не выполняет первое условие.

Я пытаюсь использовать функцию полнотекстового поиска SQL Server. Но пока не удалось сформулировать требуемый запрос. Пожалуйста, ответьте как можно скорее.

ответ

1

Вы можете попробовать использовать команду SOUNDEX и команду DIFFERENCE с полным поиском по тексту.

Проверить эту Google book онлайн, который говорит о нем

0

ли вы имеете в виду 70% от исходного слова? Я думаю, что единственный способ, которым Вы могли бы сделать это именно так, как указано было бы отработать все возможные строки перестановок, которые могли бы соответствовать 70% критериям и вернуть записи, соответствующие любым из этих

Col LIKE '%min%' AND (
Col LIKE '%Sukhmin%' OR Col LIKE '%ukhmind%' 
OR Col LIKE '%khminde%' OR Col LIKE '%hminder%') 

затем сделать дополнительную обработку, чтобы увидеть, если 90% критериев выполнены.

Edit: На самом деле вы можете найти эту ссылку на нечеткого поиска, чтобы представлять интерес http://anastasiosyal.com/archive/2009/01/11/18.aspx

Смежные вопросы