Indexar documentos TXT

Realizar la indexación de documentos de texto plano (txt) con Lucene es muy sencillo en la versión de Lucene original (Java) ya que usa las funciones predefinidas de entrada/salida de Java, simplemente hay que incluir la biblioteca java.io.

Un ejemplo de cómo sería el código:

Document doc = new Document();
Reader r = new FileReader(f);
       
doc.add(new Field("contents", r));
doc.add(new Field("filename", f.getAbsolutePath(), Field.Store.YES, Field.Index.ANALYZED));

       
writer.addDocument(doc);


3 comentarios:

Hola.
¡¡ Que bueno que regresaste !!
Tras muchas pruebas, chapuzas, horas perdidas...consegui indexar un fichero XML con Lucene 2.4 leyendo este a través de Java.
Ahora me surge la duda...¿Como recupero los datos? He leido que existe un searcher y tal...xo poco mas...
¿Hay que leerlo desde Java y mostrarlo por pantalla o se puede mostrar en un formulario HTML por ejemplo tras introducir una palabra de busqueda en un Textfield?
Saludos

10 de febrero de 2009, 19:37  

Hola Antonio.
Como dices, el tema de la indexación y recuperación en un documento XML es bastante complejo, pero hay un millón de soluciones posibles.

Si conoces la estructura del XML que vas a utilizar y siempre es la misma, existen muchos métodos que dada la estructura, te recuperan los campos ordenadamente y tal.

Si no la conoces y necesitas que se reconozcan los campos, los nodos, etc. ordenadamente, entonces es mucho más complejo, te toca fabricar un parser genérico que vaya almacenando en estructuras. (Mucha tela, la verdad).

Si no eres exigente, puedes tomar el contenido del XML en texto plano sin ningún orden, como si se tratara de un documento TXT para la indexación. Esto es ineficiente y dará un montón de contenido repetido. Pero es lo más simple.

A la hora de la recuperación del texto, no tienes por qué mostrarlo por pantalla. Cuando vas recopilando los hits que te devuelve de las búsquedas, puedes crear un documento de cualquier tipo e ir metiéndolos ahí. Eso ya es cosa de Java.

Para tu caso es mejor si tienes el documento estructurado, así que tarde o temprano tendrás que plantearte usar un buen parser.

En los siguientes post (voy a intentar ponerlos pronto) pondré mi searcher, pero es muy simple ya que mi investigación fue de aproximación al problema, no fue nada en específico.

Espero poder ayudarte. Un saludo

11 de febrero de 2009, 11:44  

Hola Blancanieves

Lo que he hecho por ahora ha sido indexar mi ficherodepruebas.xml que tiene varias personas y unos campos como nombredepersona, edad...etc y usando Java y Sax para leer el fichero lo he indexado.

Aunque la estructura del XML con el ficherodepruebas la conozco me gustaría conocer como se haría la búsqueda de una estructura que no conozco que supongo que tendrá más utilidad.

Pero bueno, para empezar te voy a preguntar cosas de como sería el buscador de una estructura fija o al menos de unas etiquetas conocidas ya que aunq la estructura varia x ej en uno tengo anotado el telef y en otros no las etiquetas son las mismas siempre. ¿Como empiezo?

Lo de mostrar los datos pues me gustaría mostrarles por pantalla o lo que sea pero ver que 1º indexo bien y luego he conseguido buscar bien.

Te dejo mi correo (antonio_ruiz_cebrian@yahoo.es) por si tienes algún manual o ejemplo de searcher y me lo quieres mandar para echarle un ojo y ver como es.

GRACIAS por las molestias tomadas.

Saludos

11 de febrero de 2009, 12:53  

Entrada más reciente Entrada antigua Inicio