{"id":3862,"date":"2024-08-21T14:00:16","date_gmt":"2024-08-21T14:00:16","guid":{"rendered":"https:\/\/orfeolibre.org\/inicio\/?post_type=knowledgebase&#038;p=3862"},"modified":"2024-08-21T14:01:25","modified_gmt":"2024-08-21T14:01:25","slug":"sphinx-estrategia-orfeo-6","status":"publish","type":"knowledgebase","link":"https:\/\/orfeolibre.org\/inicio\/documentacion-orfeo\/documentacion-orfeo6\/otras-guias-instalacion-orfeo6\/sphinx-estrategia-orfeo-6\/","title":{"rendered":"Sphinx &#8211; Estrategia Orfeo 6"},"content":{"rendered":"<h2>Descripci\u00f3n<\/h2>\n<p>La estrategia se define como: dos indices<\/p>\n<p>1. principal incremental que le hago merge cuando termino<br \/>\n2. Uno transaccional con los del ultimo delta<\/p>\n<p>Se tiene dos tablas en la BD para guardar las fechas del ultimo index y de los que se borran o actualizan.<\/p>\n<h2>Prerequistos<\/h2>\n<p>Tenemos un equipo corriendo Orfeo y vamos a agregar sphinx<\/p>\n<p>Los fuentes estan en un proyecto llamado busquedaOCR en el gforge de skina\u00a0 http:\/\/monserrat.skinatech.com:81\/gf\/project\/busquedaocr\/<\/p>\n<h2>Configuraci\u00f3n<\/h2>\n<h3>1. Instalaci\u00f3n<\/h3>\n<p>Se van\u00a0 a tener tres tablas adicionales a las originales de Orfeo para guardar la informacion de FTS<\/p>\n<p>&#8211; datosocr\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; sphinx_index_meta\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; sphinx_index_remove\u00a0\u00a0\u00a0\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\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = pgsql<br \/>\nsql_host\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0 \u00a0 = 127.0.0.1<br \/>\nsql_user\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = demo_usr<br \/>\nsql_pass\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = jo6hait@eez<br \/>\nsql_db\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = demo_odb<br \/>\nsql_port\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = 5432<\/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(indice),MAX(indice) FROM datosocr<br \/>\nsql_range_step\u00a0 = 100000<\/p>\n<p>El query para capturar los datos. La primera columna siempre es indice asi no se indique<\/p>\n<p>sql_query = \\<br \/>\nSELECT \\<br \/>\nindice as \u00abindice\u00bb,\\<br \/>\nnume_radi as \u00abid_radicado\u00bb,\\<br \/>\nnume_radi as \u00abnumero_radicado\u00bb,\\<br \/>\ntexto as \u00abocr\u00bb,\\<br \/>\nradi_nume_deri as \u00abradi_nume_deri\u00bb,\\<br \/>\nfecha_radi as \u00abfecha_radi\u00bb,\\<br \/>\ntipo as \u00abtipo\u00bb,\\<br \/>\nradi_depe_radi as \u00abradi_depe_radi\u00bb,\\<br \/>\ntipo_radi as \u00abtipo_radi\u00bb,\\<br \/>\nanex_desc as \u00abanex_desc\u00bb \\<br \/>\nFROM datosocr WHERE datosocr.indice BETWEEN $start AND $end<\/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<\/p>\n<p>sql_query_post_index =\u00a0 \\<br \/>\nUPDATE sphinx_index_meta \\<br \/>\nSET last_update = now()\u00a0 \\<br \/>\nWHERE index_name = &#8216;sph_idx_posts_main&#8217;;<\/p>\n<p>Ahora los campos de indexaci\u00f3n<\/p>\n<p># sql_field_string = id_radicado<br \/>\nsql_field_string = numero_radicado<br \/>\nsql_field_string = ocr<br \/>\nsql_field_string = radi_nume_deri<br \/>\nsql_field_string = fecha_radi<br \/>\nsql_field_string = tipo<br \/>\nsql_field_string = radi_depe_radi<br \/>\nsql_field_string = tipo_radi<br \/>\nsql_field_string = anex_desc<\/p>\n<p>Se define una segunda fuente de datos, para las actualizaciones<\/p>\n<p>Indice para solo consultar los registros que estan despues 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 despues de la ultima indexacion<\/p>\n<p>source src_indice_ocr : src_orfeo_ocr<br \/>\n{<br \/>\nsql_query = \\<br \/>\nSELECT \\<br \/>\nindice as \u00abindice\u00bb,\\<br \/>\nnume_radi as \u00abid_radicado\u00bb,\\<br \/>\nnume_radi as \u00abnumero_radicado\u00bb,\\<br \/>\ntexto as \u00abocr\u00bb,\\<br \/>\nradi_nume_deri as \u00abradi_nume_deri\u00bb,\\<br \/>\nfecha_radi as \u00abfecha_radi\u00bb,\\<br \/>\ntipo as \u00abtipo\u00bb,\\<br \/>\nradi_depe_radi as \u00abradi_depe_radi\u00bb,\\<br \/>\ntipo_radi as \u00abtipo_radi\u00bb,\\<br \/>\nanex_desc as \u00abanex_desc\u00bb \\<br \/>\nFROM datosocr WHERE datosocr.fechaocr &gt;= \\<br \/>\n(SELECT last_update FROM sphinx_index_meta m WHERE m.index_name = &#8216;sph_idx_posts_main&#8217; ) \\<br \/>\nAND datosocr.indice BETWEEN $start AND $end<\/p>\n<p>Leo los indices para borrar de la tabla de remove<\/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<br \/>\nel 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\u00a0 \\<br \/>\nUPDATE sphinx_index_remove \\<br \/>\nSET estado = 0, fecha_ejecucion = now() \\<br \/>\nWHERE estado = 1; \\<br \/>\nUPDATE sphinx_index_meta \\<br \/>\nSET last_update = now()\u00a0 \\<br \/>\nWHERE index_name = &#8216;sph_idx_posts_main&#8217;; \\<\/p>\n<p>sql_field_string = numero_radicado<br \/>\nsql_field_string = ocr<br \/>\nsql_field_string = radi_nume_deri<br \/>\nsql_field_string = fecha_radi<br \/>\nsql_field_string = tipo<br \/>\nsql_field_string = radi_depe_radi<br \/>\nsql_field_string = tipo_radi<br \/>\nsql_field_string = anex_desc<\/p>\n<p>}<\/p>\n<h4>2.2\u00a0 El Indice\u00a0 (Donde guarda la informacion 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 = 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\/sphinx\/dataorfeo\/indice_ocr<br \/>\n}<\/p>\n<p>index orfeo_ocr2<br \/>\n{<\/p>\n<p>source\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 = \/var\/lib\/sphinx\/dataorfeo\/orfeo_ocr<br \/>\ndocinfo\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0 \u00a0 \u00a0 = extern<br \/>\ndict\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0 = keywords<br \/>\nmorphology\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 = none<br \/>\nmin_word_len\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 = 3<br \/>\n}<\/p>\n<p>Ya con estos cambios\u00a0 tiene listo su Sphinx Search para realizar indexaci\u00f3n.<\/p>\n<h2>Operacion<\/h2>\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\/sphinx\/sphinx.conf &#8211;all<\/p>\n<h3>2. Busqueda<\/h3>\n<p>La funcion de busqueda se hace por medio de un servicio (demonio) corriendo llamado searchd. El archivo de configuracion tambien 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>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 automatica<\/h3>\n<p>Para la indexaci\u00f3n automatica se debera 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\/sphinx\/sphinx.conf indice_ocr &#8211;rotate<br \/>\n11 * * * * root \/usr\/bin\/indexer &#8211;config \/etc\/sphinx\/sphinx.conf &#8211;merge orfeo_ocr\u00a0 indice_ocr &#8211;rotate<br \/>\nAqui 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>El proceso de extraccion se hace asincronico con un script que corre cada determinado tiempo, sacando el texto e insert\u00e1ndolo en la tabla<\/p>\n<p>La extraccion 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<h2>Trucos<\/h2>\n<p>3: Uso radi_nume_radi dos veces en el query, esto con el fin que el primer resultado lo use como indice, RECUERDE\u00a0EL\u00a0PRIMER\u00a0CAMPO\u00a0DEL\u00a0QUERY ES\u00a0EL\u00a0INDICE\u00a0DE\u00a0SPHINX\u00a0SEARCH.<\/p>\n<h2>Problemas<\/h2>\n<p>&nbsp;<\/p>\n<p>&#8211;<\/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<\/p>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;\u00a0 datos ocr &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\ndatosocr es donde se guarda directamente todo lo que skinascan reconoce como texto<\/p>\n<p>CREATE TABLE datosocr (<br \/>\nindice integer NOT NULL,<br \/>\nnume_radi character varying(30) NOT NULL,<br \/>\ntexto text NOT NULL,<br \/>\nradi_nume_deri character varying(30),<br \/>\nfecha_radi timestamp with time zone NOT NULL,<br \/>\ntipo numeric(2,0) NOT NULL,<br \/>\nradi_depe_radi character varying(5) NOT NULL,<br \/>\ntipo_radi numeric(2,0) NOT NULL,<br \/>\ntdoc_codi numeric(4,0) NOT NULL,<br \/>\nanex_desc character varying(3000),<br \/>\nfechaocr timestamp with time zone DEFAULT now() NOT NULL<br \/>\n);<\/p>\n<p>CREATE SEQUENCE datosocr_indice_seq<br \/>\nSTART WITH 1<br \/>\nINCREMENT BY 1<br \/>\nNO MINVALUE<br \/>\nNO MAXVALUE<br \/>\nCACHE 1;<\/p>\n<p>ALTER SEQUENCE datosocr_indice_seq OWNED BY datosocr.indice;<br \/>\nALTER TABLE ONLY datosocr ALTER COLUMN indice SET DEFAULT nextval(&#8216;datosocr_indice_seq&#8217;::regclass);<br \/>\nALTER TABLE ONLY datosocr<br \/>\nADD CONSTRAINT datosocr_pkey PRIMARY KEY (indice);<\/p>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;\u00a0 sphinx index meta &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\nsphinx_index_meta esta tabla se usa para dejar una marca de tiempo cada vez que se ejecuta el proceso de indexaci\u00f3n<\/p>\n<p>CREATE TABLE sphinx_index_meta (<br \/>\nindex_name character varying(50) NOT NULL,<br \/>\nmax_id integer NOT NULL,<br \/>\nlast_update timestamp with time zone NOT NULL<br \/>\n);<\/p>\n<p>INSERT INTO sphinx_index_meta VALUES (&#8216;sph_idx_posts_main&#8217;, 1, &#8216;2019-01-16 10:49:01.961098-05&#8217;);<\/p>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;\u00a0 sphinx index remove &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\nsphinx_index_remove se usa para indicarle a sphinx que registros debe eliminar, orfeo carga datos en esta tabla cuando actualizan un anexo cargado con skinascan<\/p>\n<p>CREATE TABLE sphinx_index_remove (<br \/>\nid integer NOT NULL,<br \/>\nindice integer NOT NULL,<br \/>\nestado numeric(1,0) NOT NULL,<br \/>\nfecha_creacion timestamp with time zone NOT NULL,<br \/>\nfecha_ejecucion timestamp with time zone,<br \/>\nidentificador character varying(30) NOT NULL<br \/>\n);<\/p>\n<p>CREATE SEQUENCE sphinx_index_meta_id_seq<br \/>\nSTART WITH 1<br \/>\nINCREMENT BY 1<br \/>\nNO MINVALUE<br \/>\nNO MAXVALUE<br \/>\nCACHE 1;<\/p>\n<p>ALTER SEQUENCE sphinx_index_meta_id_seq OWNED BY sphinx_index_remove.id;<br \/>\nALTER TABLE ONLY sphinx_index_remove ALTER COLUMN id SET DEFAULT nextval(&#8216;sphinx_index_meta_id_seq&#8217;::regclass);<br \/>\nALTER TABLE ONLY sphinx_index_remove<br \/>\nADD CONSTRAINT sphinx_index_meta_pkey PRIMARY KEY (id);<\/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 se define como: dos indices 1. principal incremental que le hago merge cuando termino 2. Uno transaccional con los del ultimo delta Se tiene dos tablas en la BD para guardar las [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","template":"","knowledgebase_cat":[37],"class_list":["post-3862","knowledgebase","type-knowledgebase","status-publish","hentry","knowledgebase_cat-otras-guias-instalacion-orfeo6"],"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 6 - 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-orfeo6\/otras-guias-instalacion-orfeo6\/sphinx-estrategia-orfeo-6\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Sphinx - Estrategia Orfeo 6 - Orfeo SGDEA - Gesti\u00f3n Documental\" \/>\n<meta property=\"og:description\" content=\"Descripci\u00f3n La estrategia se define como: dos indices 1. principal incremental que le hago merge cuando termino 2. Uno transaccional con los del ultimo delta Se tiene dos tablas en la BD para guardar las [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/orfeolibre.org\/inicio\/documentacion-orfeo\/documentacion-orfeo6\/otras-guias-instalacion-orfeo6\/sphinx-estrategia-orfeo-6\/\" \/>\n<meta property=\"og:site_name\" content=\"Orfeo SGDEA - Gesti\u00f3n Documental\" \/>\n<meta property=\"article:modified_time\" content=\"2024-08-21T14:01:25+00:00\" \/>\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-orfeo6\/otras-guias-instalacion-orfeo6\/sphinx-estrategia-orfeo-6\/\",\"url\":\"https:\/\/orfeolibre.org\/inicio\/documentacion-orfeo\/documentacion-orfeo6\/otras-guias-instalacion-orfeo6\/sphinx-estrategia-orfeo-6\/\",\"name\":\"Sphinx - Estrategia Orfeo 6 - Orfeo SGDEA - Gesti\u00f3n Documental\",\"isPartOf\":{\"@id\":\"https:\/\/orfeolibre.org\/inicio\/#website\"},\"datePublished\":\"2024-08-21T14:00:16+00:00\",\"dateModified\":\"2024-08-21T14:01:25+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/orfeolibre.org\/inicio\/documentacion-orfeo\/documentacion-orfeo6\/otras-guias-instalacion-orfeo6\/sphinx-estrategia-orfeo-6\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/orfeolibre.org\/inicio\/documentacion-orfeo\/documentacion-orfeo6\/otras-guias-instalacion-orfeo6\/sphinx-estrategia-orfeo-6\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/orfeolibre.org\/inicio\/documentacion-orfeo\/documentacion-orfeo6\/otras-guias-instalacion-orfeo6\/sphinx-estrategia-orfeo-6\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\/\/orfeolibre.org\/inicio\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Sphinx &#8211; Estrategia Orfeo 6\"}]},{\"@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 6 - 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-orfeo6\/otras-guias-instalacion-orfeo6\/sphinx-estrategia-orfeo-6\/","og_locale":"es_ES","og_type":"article","og_title":"Sphinx - Estrategia Orfeo 6 - Orfeo SGDEA - Gesti\u00f3n Documental","og_description":"Descripci\u00f3n La estrategia se define como: dos indices 1. principal incremental que le hago merge cuando termino 2. Uno transaccional con los del ultimo delta Se tiene dos tablas en la BD para guardar las [&hellip;]","og_url":"https:\/\/orfeolibre.org\/inicio\/documentacion-orfeo\/documentacion-orfeo6\/otras-guias-instalacion-orfeo6\/sphinx-estrategia-orfeo-6\/","og_site_name":"Orfeo SGDEA - Gesti\u00f3n Documental","article_modified_time":"2024-08-21T14:01:25+00:00","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-orfeo6\/otras-guias-instalacion-orfeo6\/sphinx-estrategia-orfeo-6\/","url":"https:\/\/orfeolibre.org\/inicio\/documentacion-orfeo\/documentacion-orfeo6\/otras-guias-instalacion-orfeo6\/sphinx-estrategia-orfeo-6\/","name":"Sphinx - Estrategia Orfeo 6 - Orfeo SGDEA - Gesti\u00f3n Documental","isPartOf":{"@id":"https:\/\/orfeolibre.org\/inicio\/#website"},"datePublished":"2024-08-21T14:00:16+00:00","dateModified":"2024-08-21T14:01:25+00:00","breadcrumb":{"@id":"https:\/\/orfeolibre.org\/inicio\/documentacion-orfeo\/documentacion-orfeo6\/otras-guias-instalacion-orfeo6\/sphinx-estrategia-orfeo-6\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/orfeolibre.org\/inicio\/documentacion-orfeo\/documentacion-orfeo6\/otras-guias-instalacion-orfeo6\/sphinx-estrategia-orfeo-6\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/orfeolibre.org\/inicio\/documentacion-orfeo\/documentacion-orfeo6\/otras-guias-instalacion-orfeo6\/sphinx-estrategia-orfeo-6\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/orfeolibre.org\/inicio\/"},{"@type":"ListItem","position":2,"name":"Sphinx &#8211; Estrategia Orfeo 6"}]},{"@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\/3862","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=3862"}],"version-history":[{"count":3,"href":"https:\/\/orfeolibre.org\/inicio\/wp-json\/wp\/v2\/knowledgebase\/3862\/revisions"}],"predecessor-version":[{"id":3865,"href":"https:\/\/orfeolibre.org\/inicio\/wp-json\/wp\/v2\/knowledgebase\/3862\/revisions\/3865"}],"wp:attachment":[{"href":"https:\/\/orfeolibre.org\/inicio\/wp-json\/wp\/v2\/media?parent=3862"}],"wp:term":[{"taxonomy":"knowledgebase_cat","embeddable":true,"href":"https:\/\/orfeolibre.org\/inicio\/wp-json\/wp\/v2\/knowledgebase_cat?post=3862"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}