====== 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 [[https://datacadamia.com/db/oracle/odbc_linux|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 ===== ==== 1. 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:  select * from orfeo_ocr;    select id,anex_desc, ocr from orfeo_ocr limit 100;  \\    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) ==== 2. Utilidades de sphinx ==== Guarda el top de palabras indexadas con un limite de 3000 indexer --buildstops word_freq.txt 3000  --config /etc/sphinx/sphinx.conf --all Entrega las sentencias inset que ejecuto por cada registro a indexar, util para ver problemas con acentos indexer --rotate --config /etc/sphinx/sphinx.conf --all --print-queries Entrega cada una de las palabras indexadas\\ indextool --dumpdict orfeo_ocr ===== 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.\\ ==== 2. ERROR: nothing to do. ==== - ===== Referencias ===== - FIN ---- ==============================================================\\ Anexos\\ ==============================================================\\ \\ Configuracion de sphinx usando oracle y ODBC  -->  [[egw/egw_docroot/wiki/ejemplos/sphinx.conf-oracle|sphinx.conf]] \\ ============================================================== 15-Marzo-2006 J.E.Gomez v1.0 Primera version