SQL Server - полнотекстовый поиск на основе процентов - PullRequest
4 голосов
/ 12 мая 2010

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

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

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

Это означает, что при поиске 10-символьного слова Сухминдер, тогда:

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

Но он не должен возвращать записи типа Sukhmixder, потому что он не удовлетворяет второму условию. Аналогично, он не должен возвращать запись Sukhminzzz, поскольку он не удовлетворяет первому условию.

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

Ответы [ 2 ]

1 голос
/ 12 мая 2010

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

Проверьте эту книгу Google онлайн, в которой говорится об этом

0 голосов
/ 12 мая 2010

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...