ej
Código HTML:
String bolde = "prueba con el titulo acné sábado dolores."; doc.add(new Field("bolde", bolde, Field.Store.YES, Field.Index.ANALYZED));
aqui viene el problema si leo un fichero no lo analiza le dejo mi codigo x si tengo un fallo.
Código HTML:
import org.apache.lucene.index.*; import org.apache.lucene.store.Directory; import org.apache.lucene.store.FSDirectory; import org.apache.lucene.util.Version; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.es.SpanishAnalyzer; import org.apache.lucene.document.*; import java.io.*; import java.util.ArrayList; public class CreaIndice { /*creamos una lista de ficheros y luego para cada fichero creamos un string por cada uno de los ficheros de un directorio*/ private static ArrayList []lista; public static void crearLista (File f) { if (f.isFile() && f.getName().endsWith(".txt")) { if (f.getName().contains("bold")) lista[0].add(f.getAbsolutePath()); else { if (f.getName().contains("text_ES")) lista[1].add(f.getAbsolutePath()); else { if (f.getName().contains("text_IMG")) lista[2].add(f.getAbsolutePath()); else { if (f.getName().contains("title")) lista[3].add(f.getAbsolutePath()); else lista[4].add(f.getAbsolutePath()); } } } return ; } if (f.isDirectory()) { String[] hijos = f.list(); for (int i=0; i<hijos.length; i++) { crearLista (new File (f, hijos[i])); } } } public static String leerFichero (File f) {//Éste código sirve para extraer las palabras reservadas de un archivo de texto como nuestro código fuente y guardar cada palabra en un Vector. El Vector actuará como un arreglo, pero de tamaño indefinido excepto por la cantidad de elementos que se introduzcan en él. StringBuffer s = new StringBuffer (); try { BufferedReader br = new BufferedReader (new FileReader(f)); String cad = br.readLine(); while (cad != null) { s.append(cad); s.append(" "); cad = br.readLine(); } br.close(); } catch (Exception e) { } return s.substring(0); } public static void main(String[] args) throws Exception { lista = new ArrayList[5]; for (int i=0; i<5; i++) lista[i] = new ArrayList(); File directorioGuardarIndice = new File("c:\\Temp\\indice");//crear carpeta indice File Documentos = new File("c:\\Temp\\documentos");//crear carpeta con los documentos a indexar crearLista (Documentos); /*for (int n=0; n<5; n++) { System.out.println("Lista: "+(n+1)); for (int i=0; i<lista[n].size(); i++) System.out.println(lista[n].get(i)); }*/ Analyzer analizador = new SpanishAnalyzer(Version.LUCENE_31);//analizador IndexWriterConfig configuracionIndice = new IndexWriterConfig( Version.LUCENE_31, analizador); IndexWriter Indice = new IndexWriter(FSDirectory.open(directorioGuardarIndice), configuracionIndice); //IndexWriter Indice = new IndexWriter(RecorreDirectorio, analizador, true, IndexWriter.MaxFieldLength.LIMITED); String bold; String text; String textIMG; String title; String underline; String id; int num = lista[0].size(); //directorios System.out.println("Directorios buscados: "+num); for (int i=0; i<num; i++) { id = num+""; bold = leerFichero(new File ((String)lista[0].get(i))); text = leerFichero(new File ((String)lista[1].get(i))); textIMG = leerFichero(new File ((String)lista[2].get(i))); title = leerFichero(new File ((String)lista[3].get(i))); underline = leerFichero(new File ((String)lista[4].get(i))); System.out.println("--------------------bold "+bold); System.out.println("--------------------text"+text); System.out.println("-------------------textimg"+textIMG); System.out.println("-------------------title"+title); System.out.println("-------------------underline"+underline); Document doc = new Document(); // Campo bold Field campobold = new Field("bold", bold,Field.Store.YES, Field.Index.ANALYZED); doc.add(campobold); // Campo text Field campocontenido = new Field("contenido", text,Field.Store.YES, Field.Index.ANALYZED); doc.add(campocontenido); // Campo textimg Field campotextimg = new Field("textimg", textIMG,Field.Store.YES, Field.Index.ANALYZED); doc.add(campotextimg); // Campo title Field campotitle = new Field("title", title,Field.Store.YES, Field.Index.ANALYZED); doc.add(campotitle); // Campo underlineWords Field campounderlineWords = new Field("underlineWords", underline,Field.Store.YES, Field.Index.ANALYZED); doc.add(campounderlineWords); String title2 = "recién nacidos, lactantes y adolescentes niños de edades entre los 4 y los 8 años cabeza tórax abdomen pelvis y extremidades Prevención del riesgo de atropello Prevención de lesiones en el interior del vehículo recién nacidos lactantes niños en edad preescolar y escolar Prevención deaccidentes al usar juguetes móviles ó vehículos sin motor"; doc.add(new Field("title2", title2, Field.Store.YES, Field.Index.ANALYZED)); Indice.addDocument(doc); } /********************************************************************/ //File[] carpeta = Documentos.listFiles();//asigna a archivos los documentos de la carpeta //for (int i = 0; i < carpeta.length; i++) { //File[] files = Filter().finder(Documentos + "/" + i + "/"); //File[] files = new Filter().finder(Documentos + "/" + i + "/"); //File f = archivos[i];//asigna a f los archivos recorri /*if (!f.isDirectory() && !f.isHidden() && f.exists() && f.canRead() && (f.getName().endsWith(".txt")))*/ //{ //System.out.println("Indexing " + f.getCanonicalPath());// si no es una carpeta, si no esta oculto, si existe el archivo, si se puede leer y si es un txt //escribis por consola la direccion de ubicación del txt //Document doc = new Document(); //bold = LeerFicheroTexto(files[0].getPath()); /*text = leerFichero(files[1].getPath()); textIMG = leerFichero(files[2].getPath()); title = leerFichero(files[3].getPath()); underline = leerFichero(files[4].getPath());*/ //Campo bold //Field campobold = new Field("bold", bold,Field.Store.YES, Field.Index.ANALYZED); //doc.add(campobold); //bold = leerFichero(File[0]); /*text = leerFichero(File[1]); textIMG = leerFichero(File[2]); title = leerFichero(File[3]); underline = leerFichero(File[4]); String bolde = "This is the text to be indexed."; doc.add(new Field("bolde", bolde, Field.Store.YES, Field.Index.ANALYZED)); String title2 = "prueba con el titulo acné sábado dolores"; doc.add(new Field("title2", title2, Field.Store.YES, Field.Index.ANALYZED)); /*Field campocontenido = new Field("contenido", new FileReader(f)); doc.add(campocontenido);*/ /* Campo nombre archivo Field camponombre = new Field("rutaArchivo", new InputStreamReader(new FileInputStream(f), "UTF-8")); //doc.add(camponombre); Field camponombres = new Field("rutaArchivo", f.getName(),Field.Store.YES, Field.Index.ANALYZED); doc.add(camponombres); */ Indice.optimize(); Indice.close(); System.out.println("el numero de documentos indexados es " + Indice.numDocs()); } }