Simple Web Indexing for Humans - Enhanced

Aus Mikiwiki
(Weitergeleitet von Swish-e)
Wechseln zu: Navigation, Suche

Simple Web Indexing for Humans - Enhanced / SWISH-E (auch: Swish-e) wird zum Indexieren von Sammlungen von bis zu einer Million Dokumenten eingesetzt und enthält Importfilter für viele Dokumenttypen.


Vorbedingungen: libxml2, libxml2-devel, zlib, xpdf, catdoc [1]

# cd /tmp
# tar xzf catdoc-0.93.3.tar.gz
# cd catdoc-0.93.3
# ./configure
# make
# checkinstall
# rpm -i /usr/src/packages/RPMS/i386/catdoc-0.93.3-1.i386.rpm
# ldconfig

Installation von swish-e

$ tar xzf swish-e-2.4.2.tar.gz
$ cd swish-e-2.4.2
$ ./configure
$ make
$ make check
All 3 tests passed
$ su root
# checkinstall
# rpm -i /usr/src/packages/RPMS/i386/swish-e-2.4.2-1.i386.rpm
# exit
$ swish-e -V
SWISH-E 2.4.2

Anlegen der Konfigurationsdatei "swish.conf"

# What to index (same as -i switch)
IndexDir /home/mik/public_html/local
# Only index HTML and text files
IndexOnly .htm .html .txt
# Tell swish that .txt files are to use the text parser.
IndexContents TXT* .txt
IndexContents TXT* .pdf
FileFilter .pdf "/usr/bin/pdftotext" "'%p' -"
# Kommentiertes jpeg
#IndexContents TXT* .jpg
#FileFilter rdjpgcom $1
# Otherwise, use the HTML parser
DefaultContents HTML*
# Show basic info while indexing
IndexReport 1

Installation der Web-Schnittstelle

$ mkdir /home/mik/.swish
$ cd /home/mik/.swish
$ ln -s /usr/local/lib/swish-e/swish.cgi swish.cgi

Anlegen einer Konfigurationsdatei:
$ vi swish.conf
IndexDir /usr/share/doc
IndexOnly .html .htm
DefaultContents HTML*
StoreDescription HTML* <body> 200000
MetaNames swishdocpath swishtitle
ReplaceRules remove /usr/share/

Anlegen eines Index:
$ swish-e -c swish.conf
$ swish-e -w install -m 1
$ ls -1

Testen des CGI-Skripts.

$  ./swish.cgi | head
Content-Type: text/html; charset=ISO-8859-1

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
          Search our site

Testen mit dem Webserver.

$ su -c "ln -s /home/mik/.swish/ /srv/www/htdocs/swish"

If your account is on an ISP and your web directory is ~/public_html the you might just move the entire directory:
mv ~/.swish ~/public_html

$ cd /home/mik/.swish
$ wget -O - http://localhost/swishdir/swish.cgi | head
$ telnet localhost 80
Connected to localhost.
Escape character is '^]'.
GET /swish/swish.cgi http/1.0

Anpassung von .htaccess:
$ cd /home/mik/.swish
$ vi .htaccess
# Deny everything by default
Deny From All
# But allow just CGI script
<files swish.cgi>
  Options ExecCGI
  Allow From All
  SetHandler cgi-script

Anpassung von httpd.conf und Apache-Neustart:
# vi /etc/httpd/httpd.conf
Bei "FollowSymLinks" Miuszeichen entfernen
Unter <Directory "/srv/www/htdocs"> das Wort ExecCGI einfügen
# /etc/init.d/apache restart

$ cd /home/mik/.swish
$ ln -s /usr/share/doc


Indexieren aller Dateien unter "/home/mik", wobei im aktuellen Verzeichnis ein Index "index.swish.e" angelegt wird.

$ swish-e -i /home/mik

Im angelegten Index nach einem Wort suchen.

$ swish-e -w apache

Erneutes Indizieren nach Änderung von "swish.conf".

$ swish-e -c swish.conf

Indizieren einer Seite im Internet (nur Dateien vom "Content-Tyoe text/*").

$ swish-e -S http -i http://localhost/index.html -v2