Поиск статей по тексту и заголовкам в MySQL
Нужно сделать поиск статей. В таблице MySQL два столбца: item_name - заголовок статьи и item_text - текст статьи. Нужно сделать поиск статей по этим полям. У меня какой-то бред получается и ума не приложу как это все сортировать как поисковыки обычно сортируют, типа где больше слов найдено то будет выше.
Вот, что у меня получилось: PHP код:
|
Переделал запрос
PHP код:
Но как сделать, чтобы выводилось несколько предложений с найдеными словами, как в поисковиках? У мнея получилось только PHP код:
|
Если абстрагироваться от кода, то можно выводить из текста найденных строк таблицы 5-6 слов вокруг найденной строки поиска отделяя такие участки друг от друга многоточиями. Причем ограничивать по длине итоговую строку, чтобы результат не был на полстраницы.
|
Цитата:
|
Рабочий день к концу подошел, постараюсь завтра чего-нибудь изобразить.
|
У меня вот чего получилось:
PHP код:
|
Вложений: 1
У меня получилось нечто иное. Доработать, конечно придется ;). Но наброски я на досуге сделал.
Функция вызывается относительно одного слова, что плохо в общем-то. Когда мы "слайсим" массив исходного текста (вырезаем участок слов), можно еще проверять имеют ли последний вырезанный участок и предпоследний - пересечения (array_intersect), если да, то объединять (имплодить их) не символом многоточия, а пробелом. Ну и так далее. Сорри, ничего из-за спешки более дельного изобратить не смог. |
если често, то ничего не понял, можно с подробными коментариями, я в этом деле еще чайник:mellow: причем полный...
|
Тоесть мало найти совпадения в базе данных. Нужно еще вывести результаты поиска в удобной пользователю форме:
Повыделять найденный слова в пределах +- 50 символов, если есть пересечения обьеденить их. Подсчитать количество совпадений и в зависимости от этого сортировать найденное. Использовать словарь для грамматического (максимально точного поиска) Ну и еще много чего другого можно придумать... |
Решил пока остановиться на последнем своем варианте, ишет и ладно...
Цитата:
Кто знает, пожалуйста, высказывайте свои предложения по этой теме. |
Время: 21:09. |
Время: 21:09.
© OSzone.net 2001-