PyLucene auf RedHat Enterprise Linux 5.2
Lucene [1] ist ein Apache Subprojekt, welches erlaubt den Dateiinhalt beim Upload zu indexieren. Diese Indexierung kann anschliessend für eine effiziente Suche verwendet werden. PyLucene [3] ist eine Implementierung, welche mit Python zusammenarbeitet. Der Hintergrund meiner PyLucene Installation ist die Integration in eine BSCW [3] Umgebung.
Vorbereitungen:
CODE:
yum install ant
CODE:
yum install python-devel # Mindestens 2.4
CODE:
yum install subversion
CODE:
yum install python-devel
Da ich die drei Installationen auf verschiedenen System vorgenommen habe, ist nicht ganz klar, welche Pakete ebenfalls benötigt werden. Sollte ein build oder make fehlschlagen, empfehle ich die Installation von folgendem Paket. (ohne Gewähr)
CODE:
yum install javacc
PyLucene kann mit dem Open JDK oder Sun JDK betrieben werden, die Installation einer der beiden JDKs ist notwendig. Ich empfehle jedoch das Sun JDK.
PyLucene herunterladen:
http://linux.softpedia.com/progDownload/PyLucene-Download-7684.html CODE:
tar xfvz PyLucene-2.3.1-1-src-jcc.tar.gz
JCC compilen und installieren:
CODE:
cd jcc
Anpassungen ./setup.py für Open JDK 1.6.0
INCLUDES = {
'darwin': ['/System/Library/Frameworks/JavaVM.framework/Versions/Current/Headers'],
'linux2': ['/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/include',
'/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/include/linux'],
'sunos5': ['/usr/jdk/instances/jdk1.6.0/include',
'/usr/jdk/instances/jdk1.6.0/include/solaris'],
'win32': ['o:/Java/jdk1.6.0_02/include',
'o:/Java/jdk1.6.0_02/include/win32'],
}
LFLAGS = {
'darwin': ['-framework', 'JavaVM'],
'linux2': ['-L/usr/lib/jvm/java-1.6.0-openjdk/jre/lib/i386', '-ljava',
'-Wl,-rpath=/usr/lib/jvm/java-1.6.0-openjdk/jre/lib/i386:/usr/lib/jvm/java-1.6.0-openjdk/jre/lib/i386/client'],
'sunos5': ['-L/usr/jdk/instances/jdk1.6.0/jre/lib/i386', '-ljava',
'-R/usr/jdk/instances/jdk1.6.0/jre/lib/i386:/usr/jdk/instances/jre/lib/i386/client'],
'win32': ['/LIBPATH:o:/Java/jdk1.6.0_02/lib', 'jvm.lib']
}
linux2 Einträge müssen angepasst werden.
Anpassungen ./setup.py für Sun JDK 1.6.0_12
INCLUDES = {
'darwin': ['/System/Library/Frameworks/JavaVM.framework/Versions/Current/Headers'],
'linux2': ['/usr/java/jdk1.6.0_12/include',
'/usr/java/jdk1.6.0_12/include/linux'],
'sunos5': ['/usr/jdk/instances/jdk1.6.0/include',
'/usr/jdk/instances/jdk1.6.0/include/solaris'],
'win32': ['o:/Java/jdk1.6.0_02/include',
'o:/Java/jdk1.6.0_02/include/win32'],
}
LFLAGS = {
'darwin': ['-framework', 'JavaVM'],
'linux2': ['-L/usr/java/jdk1.6.0_12/jre/lib/i386', '-ljava',
'-Wl,-rpath=/usr/java/jdk1.6.0_12/jre/lib/i386:/usr/java/jdk1.6.0_12/jre/lib/i386/client'],
'sunos5': ['-L/usr/jdk/instances/jdk1.6.0/jre/lib/i386', '-ljava',
'-R/usr/jdk/instances/jdk1.6.0/jre/lib/i386:/usr/jdk/instances/jre/lib/i386/client'],
'win32': ['/LIBPATH:o:/Java/jdk1.6.0_02/lib', 'jvm.lib']
}
linux2 Einträge müssen angepasst werden.
CODE:
pyton setup.py build
CODE:
sudo python setup.py install
PyLucene erstellen und installieren
CODE:
cd ..
Makefile anpassen x86:
PREFIX_PYTHON=/usr
ANT=ant
PYTHON=$(PREFIX_PYTHON)/bin/python
JCC=$(PYTHON) /usr/lib/python2.4/site-packages/jcc/__init__.py
NUM_FILES=2
Makefile anpassen amd64:
PREFIX_PYTHON=/usr
ANT=ant
PYTHON=$(PREFIX_PYTHON)/bin/python
JCC=$(PYTHON) /usr/lib/python2.4/site-packages/jcc/__init__.py # Für Python 2.4
NUM_FILES=2
CODE:
make
CODE:
make install
Die Installation von PyLucene ist somit beendet, es folgt die Integration ins BSCW 4.x.
Das Paket in BSCW aktivieren, indem in der Datei src/config.py folgender Eintrag beim Attribut PACKAGES hinzugefügt wird.
CODE:
'../packages/PyLucIndex',# PyLucene Indexer
Anschliessend sollte die Konfiguration in packages/PyLucene/src/bs_config.py kontrolliert und ggf. angepasst werden.
Die Benötigten Verzeichnisse (siehe bs_config.py, Index, Text) und die Datei IndexPos erstellen.
Die Verzeichnisse müssen ausführbar und schreibbar sein, die Datei IndexPos ausschliesslich schreib- und lesbar.
Verzeichnisse initialisieren
CODE:
./bsadmin create_index -cqt
BSCW neustarten.
[1]:
http://lucene.apache.org/[2]:
http://lucene.apache.org/pylucene/[3]:
http://www.bscw.de