{"id":3866,"date":"2024-08-21T14:07:19","date_gmt":"2024-08-21T14:07:19","guid":{"rendered":"https:\/\/orfeolibre.org\/inicio\/?post_type=knowledgebase&#038;p=3866"},"modified":"2024-08-21T14:07:19","modified_gmt":"2024-08-21T14:07:19","slug":"sphinx-estrategia-orfeo-ng","status":"publish","type":"knowledgebase","link":"https:\/\/orfeolibre.org\/inicio\/documentacion-orfeo\/documentacion-orfeong\/otras-guias-instalacion-orfeong\/sphinx-estrategia-orfeo-ng\/","title":{"rendered":"Sphinx &#8211; Estrategia Orfeo NG"},"content":{"rendered":"<h2>Descripci\u00f3n<\/h2>\n<p>La estrategia de NG es la misma de <a href=\"https:\/\/orfeolibre.org\/inicio\/documentacion-orfeo\/documentacion-orfeo6\/otras-guias-instalacion-orfeo6\/sphinx-estrategia-orfeo-6\/\">Sphinx \u2013 Estrategia Orfeo 6<\/a>\u00a0 y se define como: dos indices<\/p>\n<p>1. principal incremental que le hago merge cuando termino<br \/>\n2. Uno transaccional con los del dia<\/p>\n<p>Se tiene dos tablas en la BD para guardar las fechas del ultimo indexada y de los que se borran o actualizan para removerlos del indice.<\/p>\n<h2>Prerequistos<\/h2>\n<p>Tenemos un equipo corriendo Orfeo NG y vamos a agregar<\/p>\n<h2>Configuraci\u00f3n<\/h2>\n<h3>1. Instalaci\u00f3n<\/h3>\n<p>Se requieren tres tablas para guardar la informaci\u00f3n de FTS \u00a0 (Incluidas ya dentro del modelo est\u00e1ndar)<\/p>\n<p>&#8211; ocrDatos\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0 # Datos de texto de un documento<br \/>\n&#8211; ocrSphinxIndexMeta\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0\u00a0 # Se usa para dejar una marca de tiempo cada vez que se ejecuta el proceso de indexaci\u00f3n<br \/>\n&#8211; ocrSphinxIndexRemove\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 # Se usa para indicarle a sphinx que registros debe eliminar, orfeo carga datos en esta tabla<br \/>\ncuando actualizan un anexo cargado con skinascan<\/p>\n<h3>2. Configuraci\u00f3n<\/h3>\n<h4>2.1\u00a0 La fuente de datos\u00a0 ( De donde sale los textos)<\/h4>\n<p>Se coloca la base de datos de Orfeo como fuente \u00absrc_orfeo_ocr\u00bb<\/p>\n<p>type\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = MySQL &#8211; MariaDB<br \/>\nsql_host\u00a0\u00a0 = 127.0.0.1<br \/>\nsql_user\u00a0\u00a0 = orfeoNGusr<br \/>\nsql_pass\u00a0\u00a0 = zzzz<br \/>\nsql_db\u00a0\u00a0\u00a0\u00a0 = orfeoNGdb<br \/>\nsql_port\u00a0\u00a0 = 3306<\/p>\n<p>Se indica la totalidad de los registros por query para no traerlos todos de una. Se supone indice continuo y consecutivo<\/p>\n<p>sql_query_range = SELECT MIN(idOcrDatos),MAX(idOcrDatos) FROM datosocr<br \/>\nsql_range_step\u00a0 = 2000<\/p>\n<p>El query para capturar los datos. La primera columna siempre es indice asi no se indique<\/p>\n<p>sql_query = SELECT \\<br \/>\nidOcrDatos as \u00abindice\u00bb,\\<br \/>\nidDocumentoOcrDatos as \u00abid_radicado\u00bb,\\<br \/>\ntablaAfectadaOcrDatos as \u00abtabla_afectada\u00bb,\\<br \/>\ntextoExtraidoOcrDatos as \u00abocr\u00bb,\\<br \/>\ncreacionOcrDatos as \u00abfecha_ocr\u00bb\\<br \/>\nFROM ocrDatos \\<br \/>\nWHERE ocrDatos.indice \\<br \/>\nBETWEEN $start AND $end<\/p>\n<p>Cada vez que se indexa la totalidad de los registros, despu\u00e9s de ejecutarse el proceso, se mueve la marca de tiempo que indica al indice indice_ocr desde donde va a consultar los registros<\/p>\n<p>sql_query_post_index =\u00a0 \\<br \/>\nUPDATE ocrSphinxIndexMeta \\<br \/>\nSET fechaActualizaOcrSphinxIndexMeta = now() \\<br \/>\nWHERE nombreOcrSphinxIndexMeta = &#8216;sph_idx_posts_main&#8217;;<\/p>\n<p>Ahora los campos de indexaci\u00f3n<\/p>\n<p>#- Indexador toma la primera columa como id unico<br \/>\nsql_field_string\u00a0\u00a0 = id_radicado<br \/>\nsql_field_string\u00a0\u00a0 = tabla_afectada<br \/>\nsql_field_string\u00a0\u00a0 = ocr<br \/>\nsql_attr_timestamp = fecha_ocr<\/p>\n<p>Se define una segunda fuente de datos, para las actualizaciones<\/p>\n<p>Indice para solo consultar los registros que est\u00e1n despu\u00e9s de una marca de\u00a0 tiempo guardada en una tabla independiente, este indice hereda propiedades del indice orfeo_ocr. Este indice se usa para hacer merge de solo los datos que han sido cargados despu\u00e9s de la ultima indexaci\u00f3n<\/p>\n<p>source src_indice_ocr : src_orfeo_ocr<br \/>\n{<br \/>\nsql_query = SELECT \\<br \/>\nidOcrDatos as \u00abindice\u00bb,\\<br \/>\nidDocumentoOcrDatos as \u00abid_radicado\u00bb,\\<br \/>\ntablaAfectadaOcrDatos as \u00abtabla_afectada\u00bb,\\<br \/>\ntextoExtraidoOcrDatos as \u00abocr\u00bb,\\<br \/>\ncreacionOcrDatos as \u00abfecha_ocr\u00bb\\<br \/>\nFROM ocrDatos WHERE ocrDatos.creacionOcrDatos &gt;= \\<br \/>\n(SELECT fechaActualizaOcrSphinxIndexMeta \\<br \/>\nFROM ocrSphinxIndexMeta m \\<br \/>\nWHERE m.nombreOcrSphinxIndexMeta = &#8216;sph_idx_posts_main&#8217; ) \\<br \/>\nAND ocrDatos.indice BETWEEN $start AND $end<\/p>\n<p>La lista de los borrados o alterados para quitarlos del indice<\/p>\n<p>sql_query_killlist = SELECT indice FROM sphinx_index_remove where estado = 1;<\/p>\n<p>Cada vez que se indexa la totalidad de los registros, despues de ejecutarse el proceso, se mueve la marca de tiempo que indica al indice indice_ocr desde donde va a consultar los registros Y limpia el indice de borrados y actualizados<\/p>\n<p>sql_query_post_index =\u00a0 UPDATE ocrSphinxIndexMeta \\<br \/>\nSET fechaActualizaOcrSphinxIndexMeta=now() \\<br \/>\nWHERE nombreOcrSphinxIndexMeta=&#8217;sph_idx_posts_main&#8217;;<\/p>\n<p>sql_query_post =\u00a0 UPDATE ocrSphinxIndexRemove \\<br \/>\nSET estadoOcrSphinxIndexRemove=0,ejecucionOcrSphinxIndexRemove=now() \\<br \/>\nWHERE estadoOcrSphinxIndexRemove=10;<\/p>\n<p>$**** la separaci\u00f3n en dos queries es porque no acepta una sola larga .. la trunca y la BD falla .. .. entonces toco arriesgarse.<\/p>\n<p>#- Indexador toma la primera columa como id unico<br \/>\nsql_field_string\u00a0\u00a0 = id_radicado<br \/>\nsql_field_string\u00a0\u00a0 = tabla_afectada<br \/>\nsql_field_string\u00a0\u00a0 = ocr<br \/>\nsql_attr_timestamp = fecha_ocr<br \/>\n}<\/p>\n<h4>2.2\u00a0 El Indice\u00a0 (Donde guarda la informaci\u00f3n obtenida de la fuente para la b\u00fasqueda)<\/h4>\n<p>Los indices son\u00a0 .. el primero de almacenamiento y el segundo de los deltas para adicionar al global.<\/p>\n<p>index indice_ocr<br \/>\n{<br \/>\nsource\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = src_indice_ocr<br \/>\npath\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = \/var\/lib\/sphinxsearch\/indice\/indice_ocr<br \/>\n}<\/p>\n<p>index orfeo_ocr<br \/>\n{<br \/>\nsource\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = src_orfeo_ocr<br \/>\npath\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = \/var\/lib\/sphinxsearch\/dataorfeo\/orfeo_ocr<br \/>\nmin_word_len\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = 3<br \/>\n}<\/p>\n<p>$** Recuerde que en centos el directorio es \/var\/lib\/sphinx<\/p>\n<p>Ya con estos cambios\u00a0 tiene listo su Sphinx Search para realizar indexaci\u00f3n.<\/p>\n<h2>Operaci\u00f3n<\/h2>\n<p>De aqu\u00ed adelante el proceso no cambia .. es id\u00e9ntico a <a href=\"https:\/\/orfeolibre.org\/inicio\/documentacion-orfeo\/documentacion-orfeo6\/otras-guias-instalacion-orfeo6\/sphinx-estrategia-orfeo-6\/\">la estrategia de Orfeo 6\u00a0<\/a><\/p>\n<h3>1. Indexaci\u00f3n<\/h3>\n<p>Para arrancar los indices se hace<\/p>\n<p>\/usr\/bin\/indexer &#8211;rotate &#8211;config \/etc\/sphinxsearch\/sphinx.conf &#8211;all<\/p>\n<h3>2. B\u00fasqueda<\/h3>\n<p>La funci\u00f3n de b\u00fasqueda se hace por medio de un servicio (demonio) corriendo llamado searchd. El archivo de configuraci\u00f3n tambi\u00e9n tiene aparte<\/p>\n<p>searchd<br \/>\n{<br \/>\nlisten\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = 9312<br \/>\nlisten\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = 9306:mysql41<br \/>\nlog\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = \/var\/log\/sphinxsearch\/searchd.log<br \/>\nquery_log\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = \/var\/log\/sphinxsearch\/query.log<br \/>\nread_timeout\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = 5<br \/>\nmax_children\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = 30<br \/>\npid_file\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = \/var\/run\/sphinxsearch\/searchd.pid<br \/>\nseamless_rotate\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = 1<br \/>\npreopen_indexes\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = 1<br \/>\nunlink_old\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0 \u00a0\u00a0 = 1<br \/>\nworkers\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0 \u00a0 \u00a0 = threads # for RT to work<br \/>\nbinlog_path\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0 \u00a0\u00a0\u00a0\u00a0 = \/var\/lib\/sphinxsearch\/<br \/>\n}<\/p>\n<p>#** Recuerde que en debian los directorios se llaman sphinxsearch<\/p>\n<p>Y pues debe estar corriendo ..<\/p>\n<p>Para usar PHP ..se puede usar el API de sphinx\u00a0 .. que viene con el paquete .. pero como siempre es mejor usar el del sistema<\/p>\n<h3>3. Indexaci\u00f3n autom\u00e1tica<\/h3>\n<p>Para la indexaci\u00f3n autom\u00e1tica se deber\u00e1 crear una tarea en el cron del sistema, este cron lo ajustaremos a 10 minutos.<\/p>\n<p>$#Ejecuta la indexacion de sphinx actualizando los resultados del modulo Full Tex Search PARA EL DEMO ESTA CADA MINUTO<br \/>\n$#*\/1 * * * * root \/usr\/bin\/indexer &#8211;rotate &#8211;config \/etc\/sphinx\/sphinx.conf &#8211;all<\/p>\n<p>$#Indexacion incremental se debe ejecutar con un delta de tiempo<br \/>\n10 * * * * root \/usr\/bin\/indexer &#8211;config \/etc\/sphinxsearch\/sphinx.conf indice_ocr &#8211;rotate<br \/>\n11 * * * * root \/usr\/bin\/indexer &#8211;config \/etc\/sphinxsearch\/sphinx.conf &#8211;merge orfeo_ocr\u00a0 indice_ocr &#8211;rotate<br \/>\nAqu\u00ed toca evaluar cuantos documentos tiene y que estrategia tiene para mantener el indice.<\/p>\n<p>&nbsp;<\/p>\n<h3>4. Extracci\u00f3n de Texto<\/h3>\n<p>Esto no es necesario en NG .. pero lo dejamos armado por que de pronto va a ser necesario.<\/p>\n<p>El proceso de extracci\u00f3n se hace asincr\u00f3nico con un script que corre cada determinado tiempo, sacando el texto e insert\u00e1ndolo en la tabla<\/p>\n<p>La extracci\u00f3n sigue la directivas de\u00a0 este wiki\u00a0 Extraccion de texto de documentos<\/p>\n<p>Y el cron para que lo ejecute<\/p>\n<p>15 *\/6 * * * root \/usr\/local\/skina\/bin\/llene_campos_texto &amp;&gt; \/dev\/null<\/p>\n<p>&nbsp;<\/p>\n<h2>Trucos<\/h2>\n<p>&nbsp;<\/p>\n<h2>Problemas<\/h2>\n<h3>1. El string de sql_post_index no puede ser largo<\/h3>\n<p>&#8211; Me saca error en MySQL &#8211; MariaDB si junto los dos.<\/p>\n<h2>Referencias<\/h2>\n<p>&nbsp;<\/p>\n<p>FIN<\/p>\n<hr \/>\n<p><u><strong>Advertencia<\/strong><\/u><\/p>\n<p>Este documento es privado y es de u so exclusivo de sus autores y de SKINA TECH. Cualquier uso sin una autorizaci\u00f3n escrita es contra la ley de derechos de autor y de propiedad intelectual, y ser\u00e1 motivo de una acci\u00f3n legal.<\/p>\n<hr \/>\n<p>ANEXOS\u00a0\u00a0 (en MySQL &#8211; MariaDB)<\/p>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;\u00a0 datos ocr &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\n&#8212; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br \/>\n&#8212; Estructura de tabla para la tabla `ocrDatos`<br \/>\n&#8212;<\/p>\n<p>CREATE TABLE `ocrDatos` (<br \/>\n`idOcrDatos` int(11) NOT NULL,<br \/>\n`idDocumentoOcrDatos` int(11) NOT NULL COMMENT &#8216;id registro del documento segun la tabla&#8217;,<br \/>\n`tablaAfectadaOcrDatos` int(11) NOT NULL COMMENT &#8216;1:radiDocumentos, 2:radiDocumentosPrincipales, 3:gdExpedienteDocumentos&#8217;,<br \/>\n`textoExtraidoOcrDatos` text NOT NULL COMMENT &#8216;contenido del documento&#8217;,<br \/>\n`creacionOcrDatos` datetime NOT NULL DEFAULT current_timestamp() COMMENT &#8216;creaci\u00f3n registro&#8217;,<br \/>\n`estadoOcrDatos` int(11) NOT NULL DEFAULT 10 COMMENT &#8216;estado estandar&#8217;<br \/>\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT=&#8217;Guarda directamente todo el texto que se extrae de los docum&#8217;;<\/p>\n<p>&#8212; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br \/>\n&#8212; Estructura de tabla para la tabla `ocrSphinxIndexMeta`<br \/>\n&#8212;<\/p>\n<p>CREATE TABLE `ocrSphinxIndexMeta` (<br \/>\n`idOcrSphinxIndexMeta` int(11) NOT NULL,<br \/>\n`nombreOcrSphinxIndexMeta` text NOT NULL,<br \/>\n`idMaxOcrSphinxIndexMeta` int(11) NOT NULL,<br \/>\n`fechaActualizaOcrSphinxIndexMeta` datetime NOT NULL<br \/>\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT=&#8217;Marca de tiempo cada vez que se ejecuta el proceso de indeza&#8217;;<\/p>\n<p>INSERT INTO `ocrSphinxIndexMeta` (`idOcrSphinxIndexMeta`, `nombreOcrSphinxIndexMeta`, `idMaxOcrSphinxIndexMeta`, `fechaActualizaOcrSphinxIndexMeta`) VALUES<br \/>\n(1, &#8216;sph_idx_posts_main&#8217;, 1, &#8216;2020-08-11 11:10:01&#8217;);<\/p>\n<p>&#8212; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br \/>\n&#8212; Estructura de tabla para la tabla `ocrSphinxIndexRemove`<\/p>\n<p>CREATE TABLE `ocrSphinxIndexRemove` (<br \/>\n`idOcrSphinxIndexRemove` int(11) NOT NULL,<br \/>\n`indiceOcrSphinxIndexRemove` int(11) NOT NULL,<br \/>\n`estadoOcrSphinxIndexRemove` int(11) NOT NULL DEFAULT 10 COMMENT &#8216;estado estandar&#8217;,<br \/>\n`creacionOcrSphinxIndexRemove` datetime NOT NULL DEFAULT current_timestamp() COMMENT &#8216;fecha de creacion&#8217;,<br \/>\n`ejecucionOcrSphinxIndexRemove` int(11) NOT NULL,<br \/>\n`identiOcrSphinxIndexRemove` int(11) NOT NULL<br \/>\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT=&#8217;sphinx_index_remove se usa para indicarle a sphinx que regis&#8217;;<\/p>\n<p>&#8212; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br \/>\n&#8212; Indices de tablas<\/p>\n<p>ALTER TABLE `ocrDatos` ADD PRIMARY KEY (`idOcrDatos`);<br \/>\nALTER TABLE `ocrSphinxIndexMeta` ADD PRIMARY KEY (`idOcrSphinxIndexMeta`);<br \/>\nALTER TABLE `ocrSphinxIndexRemove` ADD PRIMARY KEY (`idOcrSphinxIndexRemove`);<\/p>\n<p>&#8212; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br \/>\n&#8212; AUTO_INCREMENT de tablas<\/p>\n<p>ALTER TABLE `ocrDatos` MODIFY `idOcrDatos` int(11) NOT NULL AUTO_INCREMENT;<br \/>\nALTER TABLE `ocrSphinxIndexMeta` MODIFY `idOcrSphinxIndexMeta` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;<br \/>\nALTER TABLE `ocrSphinxIndexRemove` MODIFY `idOcrSphinxIndexRemove` int(11) NOT NULL AUTO_INCREMENT;<\/p>\n<p>==============================================================<\/p>\n<p>15-Septiembre-2020 J.E.Gomez v1.0 Primera version<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Descripci\u00f3n La estrategia de NG es la misma de Sphinx \u2013 Estrategia Orfeo 6\u00a0 y se define como: dos indices 1. principal incremental que le hago merge cuando termino 2. Uno transaccional con los del [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","template":"","knowledgebase_cat":[40],"class_list":["post-3866","knowledgebase","type-knowledgebase","status-publish","hentry","knowledgebase_cat-otras-guias-instalacion-orfeong"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Sphinx - Estrategia Orfeo NG - Orfeo SGDEA - Gesti\u00f3n Documental<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/orfeolibre.org\/inicio\/documentacion-orfeo\/documentacion-orfeong\/otras-guias-instalacion-orfeong\/sphinx-estrategia-orfeo-ng\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Sphinx - Estrategia Orfeo NG - Orfeo SGDEA - Gesti\u00f3n Documental\" \/>\n<meta property=\"og:description\" content=\"Descripci\u00f3n La estrategia de NG es la misma de Sphinx \u2013 Estrategia Orfeo 6\u00a0 y se define como: dos indices 1. principal incremental que le hago merge cuando termino 2. Uno transaccional con los del [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/orfeolibre.org\/inicio\/documentacion-orfeo\/documentacion-orfeong\/otras-guias-instalacion-orfeong\/sphinx-estrategia-orfeo-ng\/\" \/>\n<meta property=\"og:site_name\" content=\"Orfeo SGDEA - Gesti\u00f3n Documental\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data1\" content=\"6 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/orfeolibre.org\/inicio\/documentacion-orfeo\/documentacion-orfeong\/otras-guias-instalacion-orfeong\/sphinx-estrategia-orfeo-ng\/\",\"url\":\"https:\/\/orfeolibre.org\/inicio\/documentacion-orfeo\/documentacion-orfeong\/otras-guias-instalacion-orfeong\/sphinx-estrategia-orfeo-ng\/\",\"name\":\"Sphinx - Estrategia Orfeo NG - Orfeo SGDEA - Gesti\u00f3n Documental\",\"isPartOf\":{\"@id\":\"https:\/\/orfeolibre.org\/inicio\/#website\"},\"datePublished\":\"2024-08-21T14:07:19+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/orfeolibre.org\/inicio\/documentacion-orfeo\/documentacion-orfeong\/otras-guias-instalacion-orfeong\/sphinx-estrategia-orfeo-ng\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/orfeolibre.org\/inicio\/documentacion-orfeo\/documentacion-orfeong\/otras-guias-instalacion-orfeong\/sphinx-estrategia-orfeo-ng\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/orfeolibre.org\/inicio\/documentacion-orfeo\/documentacion-orfeong\/otras-guias-instalacion-orfeong\/sphinx-estrategia-orfeo-ng\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\/\/orfeolibre.org\/inicio\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Sphinx &#8211; Estrategia Orfeo NG\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/orfeolibre.org\/inicio\/#website\",\"url\":\"https:\/\/orfeolibre.org\/inicio\/\",\"name\":\"Orfeo SGDEA - Gesti\u00f3n Documental\",\"description\":\"Sistema de Gesti\u00f3n Documental de Archivo Electr\u00f3nico\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/orfeolibre.org\/inicio\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Sphinx - Estrategia Orfeo NG - Orfeo SGDEA - Gesti\u00f3n Documental","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/orfeolibre.org\/inicio\/documentacion-orfeo\/documentacion-orfeong\/otras-guias-instalacion-orfeong\/sphinx-estrategia-orfeo-ng\/","og_locale":"es_ES","og_type":"article","og_title":"Sphinx - Estrategia Orfeo NG - Orfeo SGDEA - Gesti\u00f3n Documental","og_description":"Descripci\u00f3n La estrategia de NG es la misma de Sphinx \u2013 Estrategia Orfeo 6\u00a0 y se define como: dos indices 1. principal incremental que le hago merge cuando termino 2. Uno transaccional con los del [&hellip;]","og_url":"https:\/\/orfeolibre.org\/inicio\/documentacion-orfeo\/documentacion-orfeong\/otras-guias-instalacion-orfeong\/sphinx-estrategia-orfeo-ng\/","og_site_name":"Orfeo SGDEA - Gesti\u00f3n Documental","twitter_card":"summary_large_image","twitter_misc":{"Tiempo de lectura":"6 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/orfeolibre.org\/inicio\/documentacion-orfeo\/documentacion-orfeong\/otras-guias-instalacion-orfeong\/sphinx-estrategia-orfeo-ng\/","url":"https:\/\/orfeolibre.org\/inicio\/documentacion-orfeo\/documentacion-orfeong\/otras-guias-instalacion-orfeong\/sphinx-estrategia-orfeo-ng\/","name":"Sphinx - Estrategia Orfeo NG - Orfeo SGDEA - Gesti\u00f3n Documental","isPartOf":{"@id":"https:\/\/orfeolibre.org\/inicio\/#website"},"datePublished":"2024-08-21T14:07:19+00:00","breadcrumb":{"@id":"https:\/\/orfeolibre.org\/inicio\/documentacion-orfeo\/documentacion-orfeong\/otras-guias-instalacion-orfeong\/sphinx-estrategia-orfeo-ng\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/orfeolibre.org\/inicio\/documentacion-orfeo\/documentacion-orfeong\/otras-guias-instalacion-orfeong\/sphinx-estrategia-orfeo-ng\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/orfeolibre.org\/inicio\/documentacion-orfeo\/documentacion-orfeong\/otras-guias-instalacion-orfeong\/sphinx-estrategia-orfeo-ng\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/orfeolibre.org\/inicio\/"},{"@type":"ListItem","position":2,"name":"Sphinx &#8211; Estrategia Orfeo NG"}]},{"@type":"WebSite","@id":"https:\/\/orfeolibre.org\/inicio\/#website","url":"https:\/\/orfeolibre.org\/inicio\/","name":"Orfeo SGDEA - Gesti\u00f3n Documental","description":"Sistema de Gesti\u00f3n Documental de Archivo Electr\u00f3nico","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/orfeolibre.org\/inicio\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"}]}},"_links":{"self":[{"href":"https:\/\/orfeolibre.org\/inicio\/wp-json\/wp\/v2\/knowledgebase\/3866","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/orfeolibre.org\/inicio\/wp-json\/wp\/v2\/knowledgebase"}],"about":[{"href":"https:\/\/orfeolibre.org\/inicio\/wp-json\/wp\/v2\/types\/knowledgebase"}],"author":[{"embeddable":true,"href":"https:\/\/orfeolibre.org\/inicio\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/orfeolibre.org\/inicio\/wp-json\/wp\/v2\/comments?post=3866"}],"version-history":[{"count":1,"href":"https:\/\/orfeolibre.org\/inicio\/wp-json\/wp\/v2\/knowledgebase\/3866\/revisions"}],"predecessor-version":[{"id":3867,"href":"https:\/\/orfeolibre.org\/inicio\/wp-json\/wp\/v2\/knowledgebase\/3866\/revisions\/3867"}],"wp:attachment":[{"href":"https:\/\/orfeolibre.org\/inicio\/wp-json\/wp\/v2\/media?parent=3866"}],"wp:term":[{"taxonomy":"knowledgebase_cat","embeddable":true,"href":"https:\/\/orfeolibre.org\/inicio\/wp-json\/wp\/v2\/knowledgebase_cat?post=3866"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}