digitorum.ru

Как меня найти

Профиль

icq: 4415944

Swish-e (Simple Web Indexing System for Humans - Enhanced). Установка, настройка, тестирование.

nix, search engine, swish-e

Установка.

Ставил на Debian 7.

#wget http://swish-e.org/distribution/swish-e-2.4.7.tar.gz
#tar xvf swish-e-2.4.7.tar.gz 
#cd swish-e-2.4.7
#./configure
#make
#make check
#make install
#make clean

 

И при запуске получаем ошибку

и получаем ошибку "swish-e: error while loading shared libraries: libswish-e.so.2: cannot open shared object file: No such file or directory"

 

Ищем библиотеку
#find / -name libswish-e.so.2
/usr/local/lib/libswish-e.so.2

 

Проеряем отсутствие "/usr/local/lib/" в "/etc/ld.so.conf". Добавляем, выполняем ldconfig.

Простая установка.

Так же есть пакет swish-e для debian.

Настройка.

Тут я не буду пробовать все возможные варианты конфигурации. Просто скормлю движку http://digitoru... с максимальной глубиной индексации 2 перехода (то есть главная страница и ссылки на ней).

IndexFile /home/digitorum/search-engines/swish-e/http.index
IndexDir http://digitorum.ru/
UseStemming yes
MaxDepth 2

 

Индексация.

$ swish-e -S http -c ./http.conf

Warning: UseStemming is deprecated.  See FuzzyIndexingMode in the docs
*************
  Old stemmer 'Stemming_en' is no longer supported -- using Stemming_en1 instead.
  Please update your config file.
*************
Indexing Data Source: "HTTP-Crawler"
Indexing "http://digitorum.ru/"
Parsing of undecoded UTF-8 will give garbage when decoding entities at /usr/local/lib/swish-e/swishspider line 97.
Removing very common words...
no words removed.
Writing main index...
Sorting words ...
Sorting 104 words alphabetically
Writing header ...
Writing index entries ...
  Writing word text: Complete
  Writing word hash: Complete
  Writing word data: Complete
104 unique words indexed.
4 properties sorted.                                              
1 file indexed.  6,014 total bytes.  897 total words.
Elapsed time: 00:00:05 CPU time: 00:00:00
Indexing done!

 

Получаем сообщения о том, что что-то было выключено или переделано. Надо внимательнее читать документацию...

Поэтому исправляем в конфиге "UseStemming yes" на "FuzzyIndexingMode Stemming_ru" (подробнее тут).

Очень радует, что есть русский стеммер:

# swish-e -T LIST_FUZZY_MODES
Options available for FuzzyIndexingMode:
    None
    Soundex
    Metaphone
    DoubleMetaphone
    Stemming_es
    Stemming_fr
    Stemming_it
    Stemming_pt
    Stemming_de
    Stemming_nl
    Stemming_en1
    Stemming_en2
    Stemming_no
    Stemming_se
    Stemming_dk
    Stemming_ru
    Stemming_fi
    Stemming_ro
    Stemming_hu
    Stemming_en
    Stem

 

Но не очень радует сообщение:

Parsing of undecoded UTF-8 will give garbage when decoding entities at ...

 

Поиск.

$ swish-e -f ./http.index -w "php"
# SWISH format: 2.4.7
# Search words: php
# Removed stopwords: 
# Number of hits: 2
# Search time: 0,000 seconds
# Run time: 0,013 seconds
1000 http://digitorum.ru/blog/ "Блог" 22799
370 http://digitorum.ru/ "digitorum" 6014

 

$ swish-e -f ./http.index -w "северсталь"
# SWISH format: 2.4.7
# Search words: северсталь
# Removed stopwords: 
# Number of hits: 4
# Search time: 0,001 seconds
# Run time: 0,014 seconds
1000 http://digitorum.ru/blog/ "Блог" 22799
964 http://digitorum.ru/portfolio/ "Участие в проектах" 29145
964 http://digitorum.ru/portfolio/ "Участие в проектах" 29145
941 http://digitorum.ru/ "digitorum" 6014

 

На русском так же что-то находит.

Итог.

Плюсы:

  • очень гибкий (им можно проиндексировать практически все)
  • есть русский стеммер

Минусы:

  • не очень шустрый
  • нет поддержки utf-8 (при построении индекса utf-8 конвертируется в ISO 8859-1 Latin-1)

Перспективный проект.