miércoles, 8 de diciembre de 2010

Parte I - Turorial de Lucene

Descarga de Lucene

Lo primero que debemos hacer es descargarnos el producto. Con esto debemos ser cuidadosos ya que la versión a elegir es importante. Pronto descubriréis que estar siempre a la última tiene su coste.
Vamos a empezar con Lucene 2.0

 Elegimos el fichero deseado.En este caso el fichero "lucene-3.0.0.tar" Este archivo lo tiene Adriel (Dube), o igual se los puedo copiar. Arrancamos NetBeans 6.8 M2 y creamos un nuevo proyecto en el que realizaremos las pruebas básicas. (Este NetBean lo tiene Abdel, Lorenzo  o yo).

Le damos click a File, New Project. saldra una ventana, donde dice Category seleccionaremos General, al lado dice Project: Seleccionamos Java Application. Luego tendran una imagen como la que sigue


Asignamos el nombre de proyecto: LuceneAutentia. Añadimos los ficheros jar de lucene al proyecto. Ojo, con el classpath. En la seccion Izquiera dice Project, en Project buscamos por Libraries y en Libraries le damos click derecho y le damos a Add JAR... Buscamos donde esta nuestro fichero lucene y lo añadimos. En este caso "lucene-3.0.0.tar", lo descompactamos y buscamos dentro de el  fichero " lucene-core-3.0.0.jar". Despues creamos un directorio que va ser donde se copie todo el index.

despues debajo de

package NombredelaAplicacion

ponemos

import java.io.File;
import java.io.IOException;
import org.apache.lucene.document.*;
import org.apache.lucene.document.Field.*;
import org.apache.lucene.analysis.*;
import org.apache.lucene.index.*;
import org.apache.lucene.analysis.standard.*;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.SimpleFSDirectory;
import org.apache.lucene.util.Version;

que son todos los modulos que vamos usar.



El codigo completo seria

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package javaapplication1;

import java.io.File;
import java.io.IOException;
import org.apache.lucene.document.*;
import org.apache.lucene.document.Field.*;
import org.apache.lucene.analysis.*;
import org.apache.lucene.index.*;
import org.apache.lucene.analysis.standard.*;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.SimpleFSDirectory;
import org.apache.lucene.util.Version;
//import org.apache.lucene.store.FileSwitchDirectory;
//import org.apache.lucene.store.IndexInput;
//import org.apache.lucene.store.IndexOutput;
//import org.apache.lucene.store.Lock;
//import org.apache.lucene.store.MMapDirectory;
//import org.apache.lucene.store.NIOFSDirectory;
//import org.apache.lucene.store.RAMDirectory;


/**
 *
 * @author titusfx
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws IOException {
        // TODO code application logic here

 
Document document = new Document(); // Creamos un nuevo documento

document.add(new Field("nombredelcampo", "ValordelCampo", Store.YES, Index.ANALYZED));
//donde pusimos "ValordeCampo" podemos pasarle el txt que cargamos haciendosplit en espacio o punto //etc.
String path = "C:\\Documents and Settings\\titusfx\\Mis documentos\\NetBeansProjects\\JavaApplication1\\este es mi index";
Directory dir = new SimpleFSDirectory(new File(path));
Analyzer analizador = new StandardAnalyzer(Version.LUCENE_CURRENT);

IndexWriter writer = new IndexWriter(dir, analizador, true, IndexWriter.MaxFieldLength.UNLIMITED); // ojo
writer.setUseCompoundFile(false);
writer.addDocument(document);
writer.optimize();
writer.close();

}
}

para erificar que funciono, vaya en este caso a la carpeta, "C:\\Documents and Settings\\titusfx\\Mis documentos\\NetBeansProjects\\JavaApplication1\\este es mi index" y veran que estan los nuevo archivos, ademas se puede usar una herramienta

llamado Luke

Usaremos Luke - Lucene Index Toolkit

Para asegurarnos si ha funcionado o no, vamos a descargarnos un monitor que nos permita navegar (e incluso consultar y modificar) la información indexada: Luke - Lucene Index Toolkit

Para arrancarlo (una vez descargado), hacemos doble-click en el jar (si estamos en entorno Windows) o ejecutamos la siguiente línea de parámetros.
java -jar lukeall.jar
El aspecto es bastante intuitivo, si estamos acostumbrados a distintos productos de administración de bases de datos.
Elegimos el directorio de indexación: En este caso es 

"C:\\Documents and Settings\\titusfx\\Mis documentos\\NetBeansProjects\\JavaApplication1\\este es mi index";


Y comprobamos que los datos se han indexado correctamente. Luke es una herramienta estupenda para entender (a través de prueba y error) los distintos tipos de almacenamiento, indexación y descomposición de campo.Una vez que ponemos el dir, en la seccion Search podemos examinar la estructura de la consulta, fundamental para escribir nuestros código Java cliente.

No hay comentarios:

Publicar un comentario