Войти

Показать полную графическую версию : организация поиска по сайту


struk
19-03-2005, 10:31
Подскажите как можна организовать поиск ссылок на своём сайте!!!

mar
19-03-2005, 10:35
struk
обязательно, но только давайте сначала Вы подскажите, что у Вас за сайт (статика, динамика, используется СУБД, или нет ) и какими средствами можно работать (что стоит на хостинге) :)

struk
19-03-2005, 11:41
Сайт только в разработке. Это будет что-то типа небольшой библиотеки без БД. На сайте будут размещатса книги автора и мне нужно организовать их быстрый поиск.

mar
19-03-2005, 12:21
Если Вы не используете бд, Вам придется организовать индексацию сайта и поиск по индексам. Индексы и словари можно хранить как в бд, так и в плоских файлах. Кроме того на многих хостингах сейчас поддерживается система mnogosearch (http://search.mnogo.ru/), позволяющая грамотно индексировать сайт.
Соответственно дальше требуется скрипт, работающий с полученными индексами и осуществляющий по ним поиск. (естественно поиск-разработка скрипта и системы индексации ведется одновременно, - это вещи взаимосвязанные :))

struk
19-03-2005, 12:36
Спасибо.

E-mail
19-03-2005, 14:02
а как организовать поиск по бд?:)

mar
19-03-2005, 14:28
E-mail
а как организовать поиск по бд это шутка ? Или СУБД не созданы как раз для облегчения поисков по запросам? =)

E-mail
19-03-2005, 15:51
mar
нет к сожалению не шутка,
я бы был очень признателен еслиб ты расказала.

можно например в таблице ut_base с именами столбцов: id contacts content fullcontent

так сделать:



$table="ut_base";
#$name="id";
$name="contacts";
#$name="content";
#$name="fullcontent";

if(mysql_fetch_array(mysql_query("SELECT * FROM ".$table." WHERE ".$name."=".$str)))
echo "нашли";


где
$name - это имя столбца
$table - это таблица
а $str - это то что ищем

но этот метод поиска както меня смущает...
вопрос остается открытым - как лутше?

mar
19-03-2005, 16:06
просто надо отвлечься от PHP. То есть понять, что идет работа с базой данных, а PHP служит не для составления запросов, а для того, чтобы приделать к этой работе интерфейс. (то есть лежит как бы уровнем выше)
Тогда ставим задачу (если я правильно ее поняла :)) - найти запись, в которой в одном из интересующих нас полей встречается слово Омск. Так? Если так, то получаем простейший вариант запроса:
SELECT id FROM ut_base WHERE contacts like '%Омск%' or content like '%Омск%' or fullcontent like '%Омск%';
Дальше задумываемся, а нужен ли нам этот самый case-sensetive вариант? если нет, включаем в работу lcase. (Тут - внимание - подводный камень: lcase (и не только в mysql) криво работает при криво настроенной локали.

Запускаем наш запрос и проверяем работу. Если все OK - расписываем это все на PHP, или любом другом языке программирования с которым мы работаем.
(Естественно, я немного утрирую, но иногда очень советую, - дабы не путаться на двух уровнях сразу :))

E-mail
19-03-2005, 16:34
какоенибудь свое синониумическое определение дай пожалуста case-sensetive, lcase и еще зачем эти проценты (%) в запросе?
и как узнать количество встречаемое в каждой ячейке этого слова?
и что ты имеешь ввиду под словом поле? :)

и еще, почему такое *неудобный* texarea ссоздает этот форум??!! :)

mar
20-03-2005, 11:25
E-mail
case sensetive - чувствительный к регистру (ищем в англо-русском словаре)
LCASE(str) , LOWER(str) - строковые функции MySQL (http://dev.mysql.com/doc/mysql/ru/string-functions.html)
% - маска - ищем совпадение символов не только с начала (если окружено %, то и не только по самый последний символ поля) (смотрим документацию к mysql (http://dev.mysql.com/doc/))
поле - колонка,- понятие БД (поищите сами)
в следующий раз документацию отлавливать не буду, но и от ответов на подобные вопросы воздержусь :))

По поводу работы-оформления форума - в О сайте и форуме (http://www.forum.oszone.net/forumdisplay.php?f=17)

struk
26-03-2005, 12:26
Cделал я поисковик, но у меня возникла проблема с 5 Explorerom(на 6 работает отлично). После нажатия на клавишу поис перезагружаэтся страница с иероглифами вместо русских букв, и поиск ведетса по ним. Как мне сделать что-бы отображались нормальные буквы.

Prisoner
26-03-2005, 16:53
Дело в том, что данные передаются серверному скрипту url кодированными (кажется только при методе GET). Поглядите в сторону использования функций urlencode, urldecode. еще дело может быть в тривиальной ошибке кодировки. Навяжите метатегами страничке какую-либо (в какой отдаете данные - текст странички) кодировку.

PahaW
08-07-2005, 12:52
Если Вы не используете бд, Вам придется организовать индексацию сайта и поиск по индексам. Индексы и словари можно хранить как в бд, так и в плоских файлах. Кроме того на многих хостингах сейчас поддерживается система mnogosearch, позволяющая грамотно индексировать сайт.
Соответственно дальше требуется скрипт, работающий с полученными индексами и осуществляющий по ним поиск. (естественно поиск-разработка скрипта и системы индексации ведется одновременно, - это вещи взаимосвязанные
RiSearch скрипт именно подходит под это описание.




© OSzone.net 2001-2012