2010-11-21 2 views
2

Я выполняю полнотекстовый поиск в таблице mysql с PHP на бэкэнд, и я хочу, чтобы иметь возможность выбирать текст до и после ключевых слов, которые пользователь искал, и показывать их им, как Google.Как получить текст рядом с ключевыми словами?

Например, если пользователь искал «свой мир» в колонке, где содержание является:

и этих дети, что вы плевали на, , как они пытаются изменить свои миры иммунитета к вашей консультации , Они вполне осведомленный о том, что они собираются через ...

результат будет, как:

»... как они пытаются изменить свои миры являются IMM. .. "

Возможно ли достичь чего-то подобного с помощью SQL напрямую или я должен получить все содержимое и использовать PHP и, возможно, регулярное выражение?

Спасибо.

ответ

2
SUBSTRING(column_name,(locate('word',column_name)-20),40) as your_sub_string 

Просто из верхней части моей головы, что-то, как это должно работать (не может проверить это), так как местонахождение будет возвращать позицию, где word сначала найти в column_name и подстроке возвращает подстроку из column_name запуска в позиции первого вхождения word в column_name минус 20 символов и 40 символов.

+1

Немного модифицированная версия, чтобы уважать длину поискового запроса: 'SUBSTRING (content_row, LOCATE ('search_term', content_row) -40, CHAR_LENGTH ('search_term') + 80) как content_row' – feeela

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