Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   Общие вопросы (http://forum.typo3.ru/forumdisplay.php?f=12)
-   -   Поиск по сайту и новости (http://forum.typo3.ru/showthread.php?t=9009)

Илья 09.11.2010 20:40

Поиск по сайту и новости
 
Привет.
Пытаюсь подружить индексный поиск (indexed_search) и новости (tt_news).
На форуме этот вопрос периодически поднимается, но полностью работающего решения я не нашел. Впрочем как не заработали решения и из других источников.
Предлагаю сделать полный вариант решения и перенести его в FAQ.
Итак, что было сделано:
1. Установлен indexed_search из TER, добавил в TS корня сайта
Код:

page.config.index_enable = 1
2. Установлен crawler из TER (не уверен, что он нужен с нынешней версией поисковика, где есть какие то настройки типа шедулера!?)
3. В корне сайта сделана запись: Crawler Configuration, в которой указан: Base url, Processing instruction parameters:
Код:

tt_news = &tx_ttnews[tt_news]=[_TABLE:tt_news;_PID:3]
  tt_news.procInstrFilter = tx_indexedsearch_reindex, tx_cachemgm_recache
  tt_news.cHash = 1
  tt_news.pidsOnly = 4

4. В TS корня сайта дополнительно вставлено следующее:
Код:

# taken from the crawler-docu, p. 8
tx_crawler.crawlerCfg.paramSets {
  language = &L=[|_TABLE:pages_language_overlay;_FIELD:sys_language_uid]
  language.procInstrFilter =tx_indexedsearch_reindex, tx_indexedsearch_crawler
  language.baseUrl = http://www.mysite.ru/
}
 
#for tt_news from #http://typo3.toaster-schwerin.de/typo3_english/2006_05/msg00355.html
#_PID:3 is the sysfolder with the news records
#pidsOnly = 4 is the page with the news singeview.
tx_crawler.crawlerCfg.paramSets {
  tt_news = &tx_ttnews[tt_news]=[_TABLE:tt_news;_PID:3]
  tt_news.procInstrFilter = tx_indexedsearch_reindex, tx_cachemgm_recache
  tt_news.cHash = 1
  tt_news.pidsOnly = 4
}

5. Все Новости лежат в sysfolder'e и при попытке запуска crawler напротив всех sysfolder'ов вижу: No entries (Because doktype is not allowed). Где разрешить этот тип страниц для индексирования - не нашел.
wiki изучил, но не нашел ответа. Есть только хук для запрещения индексации конкретного doktype:
Код:

excludeDoktype Hook
By adding doktype ids to following array you can exclude them from being crawled:
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['crawler']['excludeDoktype'][] = <dokTypeId>

6. В корне сайта сделана запись "Конфигурация индексирования":
Указаны:
Индексируемые таблицы: Новости
Альтернативный страницы: Указан sysfolder с новостями.
Строка параметер GET (с заменой ###UID###):
Код:

&tx_ttnews[tt_news]=###UID###
7. В TS sysfolder'a с новостями пробовал указать ч
Вот вопросы, которые меня интересуют в настоящий момент:
1. Нужен ли crowler или переиндексация будет осуществляться средствами indexed_search?
2. Реально ли индексировать sysfolder'ы или придется менять тип страницы?
3. Есть ли в природе описание нужного мне процесса настройки поисковика?
4. Что я сделал неверно, или не сделал?

Заранее благодарю.

Grank 21.01.2012 23:15

4. Не совсем понятен смысл "запуска crawler напротив всех sysfolder'ов ".
Вы что собираетесь чтобы в результатах поиска у вас была ссылка на sysfolder?
Думаю что нет. Запускайте crawler со страницы отображения отдельной новости и если все правильно сконфигурено, то проблем не возникнет.

Илья 22.01.2012 00:34

Grank
Благодарю за ответ!
До сих пор так и не понимаю нужен ли Crawler в виде отдельного экста, или в новом индексном поиске свой встроен...
Как-то проблема не возникала снова, ну и слава богу!

Grank 22.01.2012 20:59

Сам по себе crawler не занимается индексированием. Его задача сгенерить urls и запустить IndexedSearch для индексирования этих сгенеренных urls по крону.

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

Решать нужен ли Crawler или нет Вам.
Вот случай н-р когда он не помешает. Устанавливаем IndexedSearch на работающий сайт с большим количеством страниц или новостей. В таблицах IndexedSearch-а еще ничего нет, поэтому для того чтобы заработал поиск нужно либо самому открывать каждую страницу (чтобы IndexedSearch ее проиндексировал), либо ждать пока это сделают пользователи. Задача усложнится когда у вас на сайте несколько групп пользователей, которые имеют ограничения на доступ к тому или иному контенту.


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

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