¡Esta es una revisión vieja del documento!
Instalación y configuración de Sphinx para Orfeo
Descripción
Como agregar la característica de full-text-search para Orfeo 6
Prerequistos
Un linux kuine listo con orfeo y acceso a la extensión búsqueda OCR en el repositorio SVN de Skina
Instalar dependencias para los extractores
$> apt-get install bc lynx unoconv poppler-utils
Instalación y Configuración
1. Agregue las tablas
Necesita los archivos datosocr.sql sphinx_index_meta.sql sphinx_index_remove.sql
Edite el los *.sql .. y cambie el usuario orfeousr .. por el necesario ejm: demo_usr
Instalelo logueandose como el usuario para forzar el propietario
psql -h localhost -d demo_odb -U demo_usr -W -f /tmp/datosocr.sql psql -h localhost -d demo_odb -U demo_usr -W -f /tmp/sphinx_index_meta.sql psql -h localhost -d demo_odb -U demo_usr -W -f /tmp/sphinx_index_remove.sql
OJO: sphinx_index_meta.sql: Esta tabla tiene un registro que funciona como contador si no se carga junto con la estructura, puede fallar la indexación
OJO: En OrfeoNG las tablas cambian y ya vienen incluidas por defecto
2. Instale sphinx en el equipo.
Descargue el instalador de de la 2.2.11 estable
http://sphinxsearch.com/downloads/sphinx-2.2.11-1.rhel7.x86_64.rpm/thankyou.html
http://sphinxsearch.com/downloads/sphinxsearch_2.2.11-release-1~jessie_i386.deb/thankyou.html
Instale con “rpm -Uvh” en RH o con “dpkg -i ” den Debian
NOTA: No hay nada de lo que hagamos que limite la ejecucion a sphinx 2 … o sea debe poderse instalar sphinx3 desde repositorios
3. Copie el archivo de configuración
El archivo de configuración sphinx.conf modelo esta en trunk/instalacion/PSQL sphinx.conf (MSSQL, MySQL - MariaDB,ORACLE) copielo a /etc/sphinx/
Y cambie los datos de la base de datos .. nombre, usuario y contraseña (puede sacarlos del config.php de orfeo)
OJO .. cheque los paths que coincidan con /var/lib/sphinx/dataorfeo
Si Usa ODBC (MSSQL y ORACLE) .. vea el wiki para ponerlo a funcionar
** Dependiendo del numero de documentos, de pronto es buena idea cambiar el parámetro sql_range_step
4. Cree el directorio de los indices
Nota: según la versión de linux el directorio puede llamarse sphinx o sphinxsearch (tambien toca cambiarlo en sphinx.conf)
mkdir /var/lib/sphinx/dataorfeo/ chown -R sphinx:sphinx /var/lib/sphinx/dataorfeo/ mkdir /var/lib/sphinx/indice/ chown -R sphinx:sphinx /var/lib/sphinx/indice/
O en Debian
mkdir /var/lib/sphinxsearch/dataorfeo/ chown -R sphinxsearch:sphinxsearch /var/lib/sphinxsearch/dataorfeo/ mkdir /var/lib/sphinxsearch/indice/ chown -R sphinxsearch:sphinxsearch /var/lib/sphinxsearch/indice/
OJO dependiendo del tamaño de la base de datos .. es posible que esto toque enviarlo a un directorio diferente
NOTA: Hasta aquí están los modelos de orfeoexpress .. lo que sigue hace falta hacerlo.
El pinche pide un /var/data .. que voy a poner en /var/lib/sphinx/data y pone un link
mkdir /var/lib/sphinx/data
ln -s /var/lib/sphinx/data /var/data
chown -R sphinx:sphinx /var/lib/sphinx
5. Debe funcionar
Pruebe corriendo el indexador
Nota: La primera indexación debe crear los archivos que se usan de indice el el directorio /var/lib/sphinx/dataorfeo
/usr/bin/indexer --rotate --config /etc/sphinx/sphinx.conf --all\\
Nota: Este comando también se puede usar para re-indexar toda la información que se encuentre en la tabla datosocr quitando todo lo
que alguna vez fue indexado, por eso se usa para inicializar los indices
6. Verfique que el servicio esta arriba
$> systemctl enable searchd $> systemctl status searchd $> systemctl restart searchd
7. No olvide agregar al cron de sphinx.cron
Copie el sphinx.cron a /etc/cron.d/sphinx
Nota: Dentro del cron se ejecutan dos comandos para sphinx que se encargan de hacer la indexación incremental, no se usa el comando mencionado anteriormente en los cron
8. Copie el código propio de busquedaOCR en el directorio de orfeo
cp -Rpd busquedaOCR /var/www/html/orfeo-58/
Trucos
Comandos utiles:
Para ingresar al MySQL - MariaDB propio que monta sphinx ejecute en consola (debe tener instalado el cliente de MySQL - MariaDB):
1) Ingreso a consultar la db interna de sphinx = MySQL - MariaDB -h 0 -P 9306 2) Consultar la información dentro del indice “orfeo_ocr “ (los resultados siempre aparecen limitados a 20 ), ejemplos:
MySQL - MariaDB> select * from orfeo_ocr;
MySQL - MariaDB> select id,anex_desc, ocr from orfeo_ocr limit 100;
MySQL - MariaDB> select id from orfeo_ocr where match ('contraseña') limit 100;
Consultar directamente en la DB interna de sphinx le permite validar que se cargo realmente desde la tabla datosocr, cuando tiene problemas como que no encuentra resultados de registros ya cargados (Util cuando las bases de datos dan problemas por la configuración del conjunto de caracteres)
Utilidades de sphinx
$> indexer –buildstops word_freq.txt 3000 –config /etc/sphinx/sphinx.conf –all [Guarda el top de palabras indexadas con un limite de 3000]
$> indexer –rotate –config /etc/sphinx/sphinx.conf –all –print-queries [Entrega las sentencias inset que ejecuto por cada registro a indexar, util para ver problemas con acentos]
$> indextool –dumpdict orfeo_ocr [Entrega cada una de las palabras indexadas]
Problemas
1. Permisos
Generalmente lo que tiende a molestar en el proceso de instalación es la primera ejecución, recuerde primero ejecutar
la primera indexación, tener los directorios de los indices con los permisos adecuados y luego levantar el servicio de sphinx, si tiene algún error, generalmente el comando de indexación es
el que le indica que esta saliendo mal.
-
Referencias
-
FIN
==============================================================
Anexos
==============================================================
Configuracion de sphinx usando oracle y ODBC –> sphinx.conf
15-Marzo-2006 J.E.Gomez v1.0 Primera version