Я пытаюсь написать запрос, чтобы найти процентное совпадение строки поиска в примечаниях или столбце TEXT
.
Вот с чего я начинаю:
SELECT *
FROM NOTES
WHERE UPPER(NARRATIVE) LIKE 'PAID CALLED RECEIVED'
В конечном счете, я хочу сделать следующее:
- Разделите строку поиска на пробелы и ищите по отдельности все слова в строке.
- Упорядочить результаты по убыванию на основе процентного совпадения
Например, в приведенном выше сценарии каждое слово в строке поиска будет составлять 33,333% от общего числа. NARRATIVE
с 3 совпадениями (100%) должно быть вверху результатов, в то время как соответствие, содержащее 2 ключевых слова (66,666 %), будет ниже, а соответствие, содержащее 1 ключевое слово (33,333 %), будет еще ниже. .
Затем я хочу отобразить результирующее процентное совпадение для этой строки в столбце вместе со всеми другими столбцами из этой таблицы (*).
Надеюсь, это имеет смысл и может быть сделано. Любые мысли о том, как действовать? Все это ДОЛЖНО быть выполнено в SQL Server, и я бы предпочел не писать никаких CTE.
Заранее благодарим вас за любое руководство.
CONTAINS
иCONTAINSTABLE
, возможно, вам придется использовать условиеISABOUT
вместе с опциейweight()
, вот так... WHERE CONTAINS(NARRATIVE, 'ISABOUT (PAID weight(0.333), CALLED weight(0.333), RECEIVED weight(0.333))')
, ... Я даже мало использовал эту функцию. - person King King   schedule 14.08.2014CONTAINS
ИЛИFREETEXT
, потому что в этом поле/таблице нет произвольного текстового индекса, и у меня нет прав на его добавление. - person sadmicrowave   schedule 14.08.2014