Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   Инструменты разработчика (http://forum.typo3.ru/forumdisplay.php?f=34)
-   -   Поиск по сайту - кто как организует? (http://forum.typo3.ru/showthread.php?t=10814)

Ивано++ 05.07.2013 16:08

Поиск по сайту - кто как организует?
 
Добрый день.

Собственно с толкнулся с необходимостью организовать поиск по сайту. Кто как эту задачу решает. Пока нашел 3 варианта:

1. Index_search (не нравиться) - и слишком сложно...

2. Поиск по mysql-таблицам - в ручную задается описание - но так подумал проискать весь сайт - это а) нагрузка на него б) да и потом слишком много колонок по которым надо проискивать, а также pi_flexform - с XML-данными не очень-то удобно....

3. Поставить яндекс.поиск - но как понимаю это все равно должно проходить время пока он проиндексирует сайт - или как?

Кто как еще решает вопросы поиска по сайту?:)

--
Иван.

dmartynenko 05.07.2013 19:37

Google :)

А вообще делать свой поиск я считаю излишеством.

Это настолько сложная тема, что сделать что-то качественное "на коленке" не получиться. Можно конечно Sphinx и прочие вещи использовать, но это большая Работа (с большой буквы) все это запустить, настроить и заставить качественный результат выдавать.

Лучше сделать полный и обновляемый sitemap и тем самым дать возможность поисковикам быстро сайт индексировать. Так и в поисковиках сайт будет лучше подниматься и поиск от яндекса-гугла на сайт можно вставить не боясь что он не актуальный.

Ивано++ 05.07.2013 19:47

Значит будем гугул ставить или яндекс...
Единственное я как понимаю поиск будет выдавать всеравно после того, как проиндексирует...

А про то, что организовать нормальный поиск по сайту , того же мнения...
Одно дела когда есть хранилище - и в нем искать то, по 2-4 полям...

А другое дело вот так...

Valery Romanchev 06.07.2013 01:09

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

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

Ивано++ 06.07.2013 01:26

В общем - еще посмотрим...
Тогда index_se...

Просто его минус вижу для себя в том, что его надо связывать с обходчиком сайта "по расписанию"...
А это уже в той или иной степени привязывает сайт к определенному "теплому хостингу" - который требует даже не typo3, а именно Index_ search. Это как с imagemagick - который по умолчанию есть не у всех - и от сюда ряд вытекающих последствий.

Андрей Аксенов 06.07.2013 16:11

А что насчет этого решения: http://typo3.org/extensions/repository/view/solr
кто-нибудь использовал в жизни?

Ивано++ 11.08.2013 18:46

Цитата:

Сообщение от Андрей Аксенов (Сообщение 36799)
А что насчет этого решения: http://typo3.org/extensions/repository/view/solr
кто-нибудь использовал в жизни?

Данное не использовать (хотя слышал про это на одном из форумов), но думаю что это опять же очень не гибко. Один человек пришел в ужас когда узнал что типо (как он ее называет) - не умеет сама сжимать картинки и ей нужен какой-то Imagemagick... Самая интересная тема для меня - это все таки поиск по сайту...

Все они (поиски для TYPO3) расчитаны на то, что бы лазить (как бот-паук) по сайту - и индексировать - некие недо-гуглы, яндексы и прочие...

Самый простой пример - вот у нас на странице произошли кое-какие изменения (по примеру включенности, выключенности, старта и енда тайма)... И все - данные в поиске уже не актуальны.
А есть еще более сложный пример:


По примеру хотя бы дерева страниц
Раздел 1 > Раздел 2 > Раздел 3 > Раздел 4

Что будет если мы выключим к примеру Раздел 2 = hidden = 1
По логике вещей раздел 3 и 4 также должны скрыться...

И с другой стороны делать поиск по mysql-полям - это опять же наверное получать не совсем актуальное представление сгенерированного содержимого страницы. Т.к. слишком много процессво по сборке итогового Html-кода может происходит...

Другое дело когда организовывается поиск по конкретно по типу данных (к примеру фильтр в разделе)...

По этой причине даже и не знаю - вроде все идеально с TYPO3...
А вот поиск по сайту...

Хотелось бы конечно - что бы он был самый актуальны...

Цитата:

Сообщение от dmartynenko (Сообщение 36787)
Google :)

Лучше сделать полный и обновляемый sitemap и тем самым дать возможность поисковикам быстро сайт индексировать. Так и в поисковиках сайт будет лучше подниматься и поиск от яндекса-гугла на сайт можно вставить не боясь что он не актуальный.

Про sitemap - согласен...
Но все таки поиск по сайту и поиск в интернете это разные вещи...

Вот есть к примеру корпоративный сайт фирмы из разряда малого бизнеса... У них 300-350 страниц на сайте. 50% страниц занимает представление их продукции (не интернет магазин)...

Продукция техническая (что то вроде гайки диаметром 2, длиной 3)...
И люди которые заходят на сайт как правило больше внимания уделяют сразу поиску, а не хождению по разделам - это технические люди, которые понимают сразу что хотят...

Ивано++ 11.08.2013 19:51

Вот самый простой пример с file_get_contents
Есть карта сайта (содержит все страницы):

http://studsovet-life.ru/sitemap.xml

И ради интереса делаем file_get_contents (условно говоря на индексирование)...
PHP код:

<?php
/*print "<pre>";
print_r(get_headers($url));
print_r(get_headers($url, 1));
*/

$time microtime();
$time explode(' '$time);
$time $time[1] + $time[0];
$start $time;


$content file_get_contents ("http://studsovet-life.ru/sitemap.xml");
preg_match_all'#<loc>(.+?)</loc>#is'$content$reg );

foreach (
$reg[1] as $key => $value){


    
$a file_get_contents($value);
    print 
"Получен " $value "<br />";
    
#print $a;
    
}

$time microtime();
$time explode(' '$time);
$time $time[1] + $time[0];
$finish $time;
$total_time round(($finish $start), 4);
echo 
'Скрипт генерировался '.$total_time.' seconds.'."\n";
#print "<pre>";

#print_r($reg[1]);

?>

Запускаем этот скрипт -
http://studsovet-life.ru/test.php = 8 секунд работы

И весь сайт условно говоря проиндексирован...

Ставим cron - и время от времени (бот или как-еще придумать) - сайт будт обходиться...
Если пользователь - кто-то во FE-что-то меняет - то ставим в очередь на индексаци... либо после "кнопки сохранить" - запускаем функцию перенидексации страницы.


И потом страницы которые не изменились - можно не индексировать.


Т.к. на сайте у нас может быть сложная логика - к примеру виртуальные страницы - мы их также добавляем в отдельные карты сайта...
В общем разбиваем. В meta-header - добавляем специальный параметр который будет отвечать за тип информации.

Также еще есть интересное расширение: Crawler - что то вроде обходчика.


Часовой пояс GMT +4, время: 16:58.

Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot