MnoGoSearch
Материал из RSU WiKi
Содержание |
Установка
Скачать исходники можно отсюда: [1] Распаковываем и компилируем со следующими опциями:
- ./configure --with-mysql --prefix=/usr/local/mnogosearch
Далее:
- make && make install (или checkinstall на suse >= 10)
Архитектура mnoGoSearch позволяет использовать различные вариации front-end/back-end серверов и кластерные конфигурации. В нашем случае используется indexer/search frontend и mysql backend.
Конфигурирование
Файл indexer.conf
Находим файл indexer.conf. Он должен находиться в папке установки mnogosearch. Правим этот файл :
DBAddr mysql://root@localhost/mnogo-search/?dbmode=blob
Где root@localhost - имя пользователя для доступа к БД и адрес машины, mnogo-search - название БД, single - метод работы с базой данных по умолчанию, для ускорения работы используются методы multi или blob.
Метод индексации single весьма прост, но и медленен. Подходит для небольших ресурсов. Метод multi является более предпочтительным, т.к. сильно возрастает скорость поиска. Если же планируется индексировать большое число документов (порядка 50000 и больше) однозначным выбором должен быть blob.
LocalCharset UTF-8
Указываем кодировку, в которой должны выводиться результаты индексирования.
StopwordFile stopwords/en.huge.sl StopwordFile stopwords/ru.sl.utf
Эти две строки указывают пути к файлам со списками исключений (слов, которые будут игнорированы индексатором), английскими и русскими соответственно.
Include disallows.conf
Где файл представляет собой списки исключений в адресной строке, которые не будут индексированы. Стоит серьезно подойти к написанию данного файла, иначе при индексации вывода скриптов (например гостевых книг и форумов) возможна ситуация, когда процесс индексации просто никогда не завершится.
Alias http://www.mysql.com/ http://mysql.udm.net/ Alias http://www.example.com/ file:///usr/local/apache/htdocs/
Эти строки указывают алиасы для индексирования сайтов. Объясним подробнее. Индексация может происходить несколькими способами. Стандартный вариант: протоколы http/ftp/nntp, в некоторых случаях нежелательны, к примеру если сайт представляет набот статичных страниц и находится на той же машине, чтои индексатор. В таком случае гораздо разумнее использовать метод индексации file:///, явзяющейся более быстрым и менее ресурсоемким. Так же существует возможность индексировать данные напрямую из таблиц SQL. За подробными примерами советуем обратиться к официальной документации.
#Server http://localhost/
Раскомментировав эту строку мы укажем локальную машину для индексирования целиком. Для удобства конфигурирования существуют следующие параметры:
#Subnet 172.16.*.* - будет индексировать сайты, находящиеся в локальной сети
Для каждого ресурса можно указывать период времени, через который будет проводиться индексация:
# Period Xy # Server http://.example.com/
В качестве значения к "Period" можно указывать:
- Xy - x лет
- Xm - x месяцев
- Xd - x дней
- Xh - х часов
Создание БД
Создаем базу данных, с которой будет работать поисковая система(в нашем случае используется mysql): mysqladmin create mnogo-search
Пишем: ./indexer -Ecreate в папке mnogosearch и создаем структуру таблицы в БД.
Файл search.htm
Должен находиться в папке установки.
DBAddr mysql://root@localhost/mnogo-search/?dbmode=blob
Эта строка должна совпадать с аналогичной в indexer.conf
Cache yes
Опция указывает на необходиомсть кеширования результатов поиска.
DetectClones yes
Удаляет из результатов поиска одинаковые ссылки.
LocalCharset UTF-8 BrowserCharset UTF-8
Локальная локаль и локаль браузера.
StopwordFile stopwords/en.huge.sl StopwordFile stopwords/ru.sl.utf
Пути к словарям слов-исключений.
Synonym synonym/english.syn Synonym synonym/russian.big.utf.syn
Пути к словарям синонимов.
Affix en iso-8859-1 ispell/english.aff Spell en iso-8859-1 ispell/english.dict Affix ru utf-8 ispell/russian.aff.utf Spell ru utf-8 ispell/russian.dict.utf
Пути к спискам словоформ, которые будут выводиться в дополнение к результатам поиска берем из дистрибутива ispell [2].
Полезности
Файл для cron-daily
#!/bin/bash /usr/local/mnogosearch/sbin/indexer -e -o /usr/local/mnogosearch/sbin/indexer -Eblob
Разделение скриптов на два так же возможно. mnoGoSearch допускает генерацию поискового blob-индекса во время crawl-сессии [3]
Переиндексация единичных записей
indexer -am -u http://somehost.example.com/path/to/page.html
Возможно ли ограничить диапозон индексации в документе?
Можно использовать<!--UdmComment-->...<!--/UdmComment-->
Смотрите тут: http://www.mnogosearch.org/doc/msearch-htmlparser-comments.html
Дружба с phpBB 3
Форум phpBB 3 необходимо научить распознавать MnoGoSearch как поискового бота, для этого заходим в административый интерфейс, выбираем "Управление поисковыми роботами" и добавляем нового робота с именем MnoGoSearch и User-agent MnoGoSearch. Это запустит внутренний механизм форума на отдачу страниц роботу без идентификаторов сессии и спец-страниц, что позволит сильно скоратить время индексации, избежать дублей в индексе и закольцовок в работе паука.
Альтернативы
htDig
Весьма быстрый и нетребовательный к ресурсам системы поисковик. К сожалению авторам так и не удалось заставить его правильным образом индексировать документы в различных кодировках.
Google Mini
Программно-аппаратный коммплекс от поискового гиганта [4]
Устройство Google Mini ориентировано на использование в сферах малого и среднего бизнеса. По утверждениям разработчиков, Google Mini прост в установке, настройке, администрировании и обладает удобным пользовательским интерфейсом. Поддерживаются более 220 различных форматов файлов, в том числе HTML, PDF и документы Microsoft Office.
Ссылки
Русская документация mnogosearch:

