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

Программно-аппаратный комплекс от поискового гиганта [1]

Googlemini.jpgУстройство Google Mini ориентировано на использование в сферах малого и среднего бизнеса. По утверждениям разработчиков, Google Mini прост в установке, настройке, администрировании и обладает удобным пользовательским интерфейсом. Поддерживаются более 220 различных форматов файлов, в том числе HTML, PDF и документы Microsoft Office.

Примечания

  1. Google Mini: Google Enterprise Search

См. также

Ссылки

Русская документация mnogosearch:

Личные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты