Я пытаюсь создать форму поиска с подсветкой ключевых слов, но, очевидно, я не смогу выделить ключевое слово, если оно не появляется в первых нескольких предложениях результата в списке - поэтому мне нужносоздайте оператор sql, который будет заполнять количество символов слева от найденного ключевого слова и столько же справа.
Кто-нибудь знает, что будет оператор SQL для чего-то подобного?
Хорошо, чтобы уточнить, представьте себе следующий оператор SQL:
SELECT *
FROM `articles`
WHERE `content` LIKE '%keyword%'
Теперь - этот оператор будетвернуть список результатов, которые соответствуют предложению WHERE.
Далее я обертываю все ключевые слова в набор результатов с помощью диапазона, чтобы выделить ключевое слово, используя следующий метод (PHP):
public static function highlight($string = null, $keyword = null, $class = 'highlight') {
return str_ireplace($keyword, "<span class=\"{$class}\">{$keyword}</span>", $string);
}
Теперь это будет работать нормально, но каждый результат отображает только начальное число символов X от каждого результата.
Я пытаюсь сначала определить ключевое слово в пределахсодержание, затем захватите некоторое содержание слева и справа от этого ключевого слова, чтобы ключевое слово всегда присутствовало в каждом из результатов.
Надеюсь, это имеет смысл.