Lucene - Analizador estándar

Este es el analizador más sofisticado y es capaz de manejar nombres, direcciones de correo electrónico, etc. Pone en minúscula cada token y elimina las palabras comunes y los signos de puntuación, si los hubiera.

Declaración de clase

A continuación se muestra la declaración de org.apache.lucene.analysis.StandardAnalyzer clase -

public final class StandardAnalyzer
   extends StopwordAnalyzerBase

Campos

A continuación se muestran los campos para org.apache.lucene.analysis.StandardAnalyzer clase -

  • static int DEFAULT_MAX_TOKEN_LENGTH - Ésta es la longitud máxima de token permitida predeterminada.

  • static Set<?> STOP_WORDS_SET - Un conjunto no modificable que contiene algunas palabras comunes en inglés que generalmente no son útiles para realizar búsquedas.

Constructores de clases

La siguiente tabla muestra los diferentes constructores de clases:

S.No. Constructor y descripción
1

StandardAnalyzer(Version matchVersion)

Construye un analizador con las palabras vacías predeterminadas (STOP_WORDS_SET).

2

StandardAnalyzer(Version matchVersion, File stopwords)

Obsoleto. En su lugar, utilice StandardAnalyzer (versión, lector).

3

StandardAnalyzer(Version matchVersion, Reader stopwords)

Construye un analizador con las palabras vacías del lector dado.

4

StandardAnalyzer(Version matchVersion, Set<?> stopWords)

Construye un analizador con las palabras vacías dadas.

Métodos de clase

La siguiente tabla muestra los diferentes métodos de clase:

S.No. Método y descripción
1

protected Reusable Analyzer Base. Token Stream Components create Components(String fieldName, Reader reader)

Crea una nueva instancia de ReusableAnalyzerBase.TokenStreamComponents para este analizador.

2

int getMaxTokenLength()

3

void setMaxTokenLength(int length)

Establece la longitud máxima permitida del token.

Métodos heredados

Esta clase hereda métodos de las siguientes clases:

  • org.apache.lucene.analysis.StopwordAnalyzerBase
  • org.apache.lucene.analysis.ReusableAnalyzerBase
  • org.apache.lucene.analysis.Analyzer
  • java.lang.Object

Uso

private void displayTokenUsingStandardAnalyzer() throws IOException {
   String text 
      = "Lucene is simple yet powerful java based search library.";
   Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_36);
   TokenStream tokenStream 
      = analyzer.tokenStream(LuceneConstants.CONTENTS,
        new StringReader(text));
   TermAttribute term = tokenStream.addAttribute(TermAttribute.class);
   
   while(tokenStream.incrementToken()) {
      System.out.print("[" + term.term() + "] ");
   }
}

Aplicación de ejemplo

Creemos una aplicación de prueba de Lucene para probar la búsqueda usando BooleanQuery.

Paso Descripción
1

Cree un proyecto con un nombre LuceneFirstApplication en un paquete com.tutorialspoint.lucene como se explica en el capítulo Lucene - Primera aplicación . También puede utilizar el proyecto creado en Lucene - Capítulo Primera aplicación como tal para este capítulo para comprender el proceso de búsqueda.

2

Cree LuceneConstants.java como se explica en el capítulo Primera aplicación de Lucene . Mantenga el resto de los archivos sin cambios.

3

Cree LuceneTester.java como se menciona a continuación.

4

Limpie y compile la aplicación para asegurarse de que la lógica empresarial funcione según los requisitos.

LuceneConstants.java

Esta clase se utiliza para proporcionar varias constantes que se utilizarán en la aplicación de muestra.

package com.tutorialspoint.lucene;

public class LuceneConstants {
   public static final String CONTENTS = "contents";
   public static final String FILE_NAME = "filename";
   public static final String FILE_PATH = "filepath";
   public static final int MAX_SEARCH = 10;
}

LuceneTester.java

Esta clase se utiliza para probar la capacidad de búsqueda de la biblioteca Lucene.

package com.tutorialspoint.lucene;

import java.io.IOException;
import java.io.StringReader;

import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.StandardAnalyzer;
import org.apache.lucene.analysis.tokenattributes.TermAttribute;
import org.apache.lucene.util.Version;

public class LuceneTester {
	
   public static void main(String[] args) {
      LuceneTester tester;

      tester = new LuceneTester();
   
      try {
         tester.displayTokenUsingStandardAnalyzer();
      } catch (IOException e) {
         e.printStackTrace();
      }
   }

   private void displayTokenUsingStandardAnalyzer() throws IOException {
      String text 
         = "Lucene is simple yet powerful java based search library.";
      Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_36);
      TokenStream tokenStream = analyzer.tokenStream(
         LuceneConstants.CONTENTS, new StringReader(text));
      TermAttribute term = tokenStream.addAttribute(TermAttribute.class);
      while(tokenStream.incrementToken()) {
         System.out.print("[" + term.term() + "] ");
      }
   }
}

Ejecutando el programa

Una vez que haya terminado con la creación de la fuente, puede proceder compilando y ejecutando su programa. Para hacer esto, mantenga elLuceneTester.Java pestaña de archivo activa y use la opción Ejecutar disponible en el IDE de Eclipse o use Ctrl + F11 para compilar y ejecutar su LuceneTestersolicitud. Si su aplicación se ejecuta correctamente, imprimirá el siguiente mensaje en la consola de Eclipse IDE:

[lucene] [simple] [yet] [powerful] [java] [based] [search] [library]