Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Поиск по сайту

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
Vanu4
Отправлено: 02 Июня, 2008 - 10:53:28
Post Id



Новичок


Покинул форум
Сообщений всего: 60
Дата рег-ции: Май 2008  


Помог: 0 раз(а)




Хотел сделать нормальный поиск слов по всему сайту, начинал уже монго раз, но никак ничего нормального не получалось. Я придерживался такой идее (хотя я уже чувствую, что она не верная):
Сначала, я беру все файлы с директории сайта, заношу их в массив и выбираю только те, у кого разширение .html (страници сайта хтмливские). Потом делаю цикл и считываю всю инфу с каждой страницы в массив, причем каждый абзац в разный элемент массива. Потом, каждый абзац опять разбираю на слова, которые опять таки в массив. Потом разбиваю фразу поиска на слова и их сравниваю с словами, которые я получил с сайта.
Проблемы:
1. Очень и очень сложная структура (много вложеных циклов, разобраться в которых чужому человеку будет думаю не просто);
2. Попросили, чтоб я сделал ссылки на каждом найденом слове, которые будут приводить на страницу, на которой эта инфа находится, но это не получилось.
Короче хоче спросить, может кто-то знает какой-то механизм или подскажет структутру, как более просто можно решить задачу поиска.
 
 Top
D1mOn
Отправлено: 02 Июня, 2008 - 11:17:26
Post Id



Частый гость


Покинул форум
Сообщений всего: 222
Дата рег-ции: Янв. 2008  
Откуда: Гагастан


Помог: 0 раз(а)

[+][+][+][+][+]


УЖОСНАХ! А сервер у Вас не упадет? Как думаете?
 
 Top
Джур
Отправлено: 02 Июня, 2008 - 11:31:33
Post Id



Посетитель


Покинул форум
Сообщений всего: 423
Дата рег-ции: Март 2007  


Помог: 0 раз(а)




D1mOn пишет:
УЖОСНАХ! А сервер у Вас не упадет? Как думаете?

Не упадет... РНР и не такое делать может, но на мой сугубо личный взгляд сложновато както... Хотя скриптов мы не видели Улыбка
я бы на месте данного комерада использовал хеширование... Учитывая что на сайтах используется не так уж и много слов, можно занести их в массив. ключ - это слово, а значение это список содержащих его страничек.
1. сайт хешируется время от времени
2. при поиске можно даже релевантность совпадения определить
3. ссылки на странички получить не проблемма
4. если сможете скриптом приводить все слова к именительному падежу, то и база станет меньше.

5. сложность кода увеличется... немного.


-----
Тамбовский каджит тебе товарищ
 
 Top
Vanu4
Отправлено: 02 Июня, 2008 - 12:02:16
Post Id



Новичок


Покинул форум
Сообщений всего: 60
Дата рег-ции: Май 2008  


Помог: 0 раз(а)




Джур пишет:
2. при поиске можно даже релевантность совпадения определить
Все более-менее понятно, только не знаю, что такое "релевантность совпадения". Обьясните пожалуйста.
(Добавление)
Джур пишет:
Не упадет... РНР и не такое делать может, но на мой сугубо личный взгляд сложновато както... Хотя скриптов мы не видели Улыбка
я бы на месте данного комерада использовал хеширование... Учитывая что на сайтах используется не так уж и много слов, можно занести их в массив. ключ - это слово, а значение это список содержащих его страничек.
1. сайт хешируется время от времени
2. при поиске можно даже релевантность совпадения определить
3. ссылки на странички получить не проблемма
4. если сможете скриптом приводить все слова к именительному падежу, то и база станет меньше.5. сложность кода увеличется... немного.
Если я все правильно понимаю, то мы берем все слова с сайта, заносим их в масив, удаляем те, что повторяются, а потом этим словам-ключам даем значения страниц, на которых они находятся. Так?
Тогда вопрос: может нужно хранитьномера страничек и абзацев, в которых имеется слово-поиск? Если нужно в вывести абзац со словом-поиск и его выделить каким либо цветом, нужно разбивать данный абзац и красить слово или все делается намного проще?

(Отредактировано автором: 02 Июня, 2008 - 12:17:20)

 
 Top
D1mOn
Отправлено: 02 Июня, 2008 - 12:18:20
Post Id



Частый гость


Покинул форум
Сообщений всего: 222
Дата рег-ции: Янв. 2008  
Откуда: Гагастан


Помог: 0 раз(а)

[+][+][+][+][+]


Не совсем понятно, зачем юзерам необходимо искать во всем содержании страницы... Я понимаю если ищут, то например по статьям/видео/описаниям и т.п.
(Добавление)
Джур пишет:
Не упадет... РНР и не такое делать может

Я придерживаюсь мнения, что при заходе 100 челов, будет не до смеха )
 
 Top
Vanu4
Отправлено: 02 Июня, 2008 - 12:20:41
Post Id



Новичок


Покинул форум
Сообщений всего: 60
Дата рег-ции: Май 2008  


Помог: 0 раз(а)




D1mOn пишет:
Не совсем понятно, зачем юзерам необходимо искать во всем содержании страницы... Я понимаю если ищут, то например по статьям/видео/описаниям и т.п.
Ну это как раз и подразумевалось. Я не имею ввиду, что если человек ищет слово "Главная", то он попадет на главную страницу. Подразумевается инфа мужду тєгами <р></р>.

(Отредактировано автором: 02 Июня, 2008 - 12:21:16)

 
 Top
Джур
Отправлено: 02 Июня, 2008 - 12:22:50
Post Id



Посетитель


Покинул форум
Сообщений всего: 423
Дата рег-ции: Март 2007  


Помог: 0 раз(а)




релевантность совпадения - насколько точно страничка соответствует вашему запросу...

Цитата:

нужно хранитьномера страничек и абзацев, в которых имеется слово-поиск? Если нужно в вывести абзац со словом-поиск и его выделить каким либо цветом, нужно разбивать данный абзац и красить слово или все делается намного проще?

лучше не хранить... зная в каком файле надо копать, можно просто найти первое вхождение данного слова и вырезать кусок от -30 до +120 символов. а найденое слово подкрасить.
Либо найти слово и пренадлежащий ему абзац... только ведь абзац может быть БОЛЬШИМ.

поток в 100ч/сек весьма сомнительный... а если и будет, то время работы скрипта просто увеличется... при грамОтных настройках проДОСить такой скрипт будет нереально

(Отредактировано автором: 02 Июня, 2008 - 12:26:18)



-----
Тамбовский каджит тебе товарищ
 
 Top
D1mOn
Отправлено: 02 Июня, 2008 - 12:23:13
Post Id



Частый гость


Покинул форум
Сообщений всего: 222
Дата рег-ции: Янв. 2008  
Откуда: Гагастан


Помог: 0 раз(а)

[+][+][+][+][+]


ИМХО, положить все данные по которым нужно искать в базу и не др***ть )
 
 Top
Джур
Отправлено: 02 Июня, 2008 - 12:28:29
Post Id



Посетитель


Покинул форум
Сообщений всего: 423
Дата рег-ции: Март 2007  


Помог: 0 раз(а)




D1mOn пишет:
ИМХО, положить все данные по которым нужно искать в базу и не др***ть )

а если базы нет?
да и хранить массив слов можно и в базе... никто не запрещает... скорость выборки только увеличется.


-----
Тамбовский каджит тебе товарищ
 
 Top
D1mOn
Отправлено: 02 Июня, 2008 - 12:30:22
Post Id



Частый гость


Покинул форум
Сообщений всего: 222
Дата рег-ции: Янв. 2008  
Откуда: Гагастан


Помог: 0 раз(а)

[+][+][+][+][+]


Джур пишет:
а если базы нет?

Заведите Улыбка
(Добавление)
ИМХО, при такой разнице во времени добавления сообщений, нам нужно организовать чат )

(Отредактировано автором: 02 Июня, 2008 - 12:30:46)

 
 Top
Vanu4
Отправлено: 02 Июня, 2008 - 12:37:19
Post Id



Новичок


Покинул форум
Сообщений всего: 60
Дата рег-ции: Май 2008  


Помог: 0 раз(а)




Джур пишет:
лучше не хранить... зная в каком файле надо копать, можно просто найти первое вхождение данного слова и вырезать кусок от -30 до +120 символов. а найденое слово подкрасить.
Либо найти слово и пренадлежащий ему абзац... только ведь абзац может быть БОЛЬШИМ.


Но если на странице не один абзац со словом, как тогда?
 
 Top
valenok Модератор
Отправлено: 02 Июня, 2008 - 15:31:27
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




Вариант а - при помощи mysql
Все статические документы записывать в БД и использовать полнотекстовый поиск

Вариат б - при помощи гугл.
Вариант этот в 99% случаях эффективней.


-----
Truly yours, Sasha.
 
My status
 Top
Джур
Отправлено: 02 Июня, 2008 - 18:47:56
Post Id



Посетитель


Покинул форум
Сообщений всего: 423
Дата рег-ции: Март 2007  


Помог: 0 раз(а)




valenok пишет:

Вариат б - при помощи гугл.
Вариант этот в 99% случаях эффективней.

Неспорю... но мы обязаны ответить на вопрос человека Улыбка
Да и возможно есть какие-то ограничения, в связи с которыми юзать google нежелательно.

Цитата:
Но если на странице не один абзац со словом, как тогда?

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


-----
Тамбовский каджит тебе товарищ
 
 Top
Vanu4
Отправлено: 23 Июня, 2008 - 17:11:22
Post Id



Новичок


Покинул форум
Сообщений всего: 60
Дата рег-ции: Май 2008  


Помог: 0 раз(а)




Решил вернутся к этой теме, есть пару новых вопросов.
Вот, например, было такое предложение взять все слова со страниц сайта и запихнуть их в базу. Но, как их правильно заносить, если, к примеру, слова "окно", "окна" ну и т.д. они же несут один смылс. Их так и заносить в базу как разные слова, или как?
И еще одно. Как сделать так, что если человек исчет, например слово "кружка", то ему поиск выводи еще страници со словами, например: "кружки", "кружек" ну и т.д.?
 
 Top
D1mOn
Отправлено: 24 Июня, 2008 - 01:55:32
Post Id



Частый гость


Покинул форум
Сообщений всего: 222
Дата рег-ции: Янв. 2008  
Откуда: Гагастан


Помог: 0 раз(а)

[+][+][+][+][+]


Насчет "окно-окна", Вам предложили переводить в именительный падеж.
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB