¡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

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

$** 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

$** 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

$** No hay nada de lo que hagamos que limite la ejecucion a sphinx 2 … o sea debe poderse instalar sphinx3

3. Copie el archivo de configuracion

El archivo de configuracion 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 sacarlog 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, depronto es buena idea cambiar el parametro 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

** Hasta aqui estan 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 dirrectorio /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 resultadpos siempre aparecen limitados a 20 ), ejemplos: 

   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 instalacion 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 algun error, generalmente el comando de indexación es
el que le indica que esta saliendo mal.

-

Referencias

-

FIN


Advertencia

Este documento es privado y es de u so exclusivo de sus autores y de SKINA TECH. Cualquier uso sin una autorización escrita es contra la ley de derechos de autor y de propiedad intelectual, y será motivo de una acción legal.


==============================================================
Anexos
==============================================================

Configuracion de sphinx usando oracle y ODBC  –>  sphinx.conf


15-Marzo-2006 J.E.Gomez v1.0 Primera version

Volver arriba