[Isis-users] Pregunta acerca de los números de la búsqueda
Ernesto Spinak
spinaker at adinet.com.uy
Thu Dec 23 20:56:29 CET 2010
Renata
enviame a mi correo personal (no es necesario a la lista) un archivo .zip con algunos registros
envia una descripción de cómo quieres indizar los campos de números, o sea las claves que deseas extraer. Puedes ser ambiciosa, envía todas las formas que te gustaría poder indizar, si te parecen formas "locas" no te preocupes, con CISIS es posible hacerlo.
Luego yo enviaré la solución (con copia también a la lista, asi todos pueden aprovechar)
Saludos
Ernesto Spinak
----Mensaje original----
De: rlm at modalnetworks.com
Fecha: 23/12/2010 15:08
Para: "Ernesto Spinak"
CC:
Asunto: Re: [Isis-users] Pregunta acerca de los números de la búsqueda
Hola Ernesto, como estas?
Su sugerencia trabajado, en parte.
He añadido estas líneas en la fst:
60 0 if p (v60), then 'NP_', v60 fi
60 0 if p (v60), then 'TW_', proc (' GSplit = 60 =. ') (v60 /) fi
El que mantiene el comando "replace" no funcionó, se muestra el error en tiempode revertir.
De esta manera he podido encontrar, pero sólo los números después del punto.
He intentado editar un registro para entrar en el "." antes de que todos los números. Porejemplo, .85.45.69, pero al hacerlo, el registro entero es un desastre, las líneas sondesplazados no saben lo que pasó.
Cuando se trata de editar otro disco (supongo que he añadido el número 85.45.69), el mensaje de error siguiente aparece:
WXIS | execution error| field| D1001 |
Y al final, lo fue. La búsqueda de trabajo sólo para los registros existentes, pero no he podido editar e insertar uno nuevo que cualquiera de los errores anteriores se produjeron ...
Espero que puedan ayudarme!
Gracias y Felices Fiestas a todos!
A:link { text-decoration: none}
A:visited { text-decoration: none}
--
Atenciosamente,
Renata Lopes Melo
Analista de Suporte
Tel: +55 (11) 5587-3674
Tel: +55 (11) 3798-1531
Email: rlm at modalnetworks.com
Antes de imprimir pense em sua responsabilidade e compromisso com o Meio Ambiente.
Em 20/12/2010 18:17, Ernesto Spinak escreveu:
Estimada Renata
(Favor que alguien traduzca la inglés pues no tengo tiempo en este momento)
La indización estándard de ISIS por técnicas 4 y 8 recupera cadenas de caracteres (strings) formadas por los caracteres definidos en la una tabla isisac.tab
La tabla por defecto del Isis considera palabra a cualquier string de caracteres solamente alfabéticos.
Esto significa que los números, espacios en blanco y caracteres tipográficos dividen las cadenas en "palabras".
El problema se plantea en la definición de "palabra".
Algunas soluciones que se han ofrecido es incluir los números en la lista isisac.tab, entonces también son incluídos como "palabras. Pero esta solución es bastante limitada. Por ejemplo tenemos el caso que plantea tú planteas y que Alisson informa correctamente que no ha funcionado.
Ella tiene un número 12589.569 y como el punto (.) es separador, entonces se generan dos claves
12589 y 569
Lo mismo ocurriría si tuviéramos códigos como los expedientes o las leyes 10.751/12, Decreto 987/2010
De modo que la modificación del isisac.tab no resuelve el tema completamente, incluso "ensucia" el archivo invertido cuando indiza campos donde hay números y no queremos que éstos se indicen.
Una solución "limpia" viene por otra vía.
Para eso CISIS usa los procs( ), que además de ser un parámetro del MX también es una instrucción del formato.
Problema:
tenemos los siguientes valores y queremos generar los siguientes índices
a) 12589.569 --> 12589.569 12589569 12589 569
b) 1234/001 --> 1234/001 1234 001
supongamos que estos valores están en el campo 590, entonces
Todas estas variantes de los números son necesarios para que el usuario en la consulta "tipo google" del IAH pueda recuperar los valores indistintamente si usa puntos o barras o si no los usa
Presentamos en forma simple y didáctica, paso a paso, pues las instrucciones siguientes pueden optimizarse en líneas más compactas
Ejemplo (a)
590 0 if p(v590) then 'TW_', v590 fi
590 0 if p(v590) then 'TW_', replace(v590),'.','') fi
590 0 if p(v590) then 'TW_', proc('Gsplit=590=.') (v590/)
Ejemplo (b)
590 0 if p(v590) then 'TW_', v590 fi
590 0 if p(v590) then 'TW_', proc('Gsplit=590=/') (v590/)
también es posible extraer los números de un texto usando proc('Gsplit/clean=<tag>,numbers')
hay muchas opciones que no son usadas pero muy eficientes para indizar
Con tiempo daremos otros ejemplos.
El comando proc( ) es indispensable para hacer FST realmente avanzadas
Saludos
Ernesto Spinak
--
.^. .^.
( ) ( )
=== ===
=[=]================================[=]=
| | Ernesto Spinak | |
| | spinaker at adinet.com.uy | |
| | Montevideo, Uruguay | |
| | tel/fax (5982) 622-3352 | |
| | celular (598) 99612238 | |
=[=]================================[=]=
=== ===
( ) ( )
V V
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.iccisis.org/pipermail/isis-users/attachments/20101223/d5ddc976/attachment.htm>
More information about the isis-users
mailing list