Lucene - StandardAnalyzer

Este é o analisador mais sofisticado e é capaz de lidar com nomes, endereços de e-mail, etc. Ele coloca cada token em minúsculas e remove palavras comuns e pontuações, se houver.

Declaração de Classe

A seguir está a declaração para o org.apache.lucene.analysis.StandardAnalyzer classe -

public final class StandardAnalyzer
   extends StopwordAnalyzerBase

Campos

A seguir estão os campos para o org.apache.lucene.analysis.StandardAnalyzer classe -

  • static int DEFAULT_MAX_TOKEN_LENGTH - Este é o comprimento máximo de token permitido padrão.

  • static Set<?> STOP_WORDS_SET - Um conjunto não modificável contendo algumas palavras comuns em inglês que geralmente não são úteis para pesquisa.

Construtores de classe

A tabela a seguir mostra os diferentes construtores de classes -

S.No. Construtor e descrição
1

StandardAnalyzer(Version matchVersion)

Constrói um analisador com as palavras de parada padrão (STOP_WORDS_SET).

2

StandardAnalyzer(Version matchVersion, File stopwords)

Descontinuada. Use StandardAnalyzer (versão, leitor) em vez disso.

3

StandardAnalyzer(Version matchVersion, Reader stopwords)

Constrói um analisador com as palavras de parada do leitor fornecido.

4

StandardAnalyzer(Version matchVersion, Set<?> stopWords)

Constrói um analizador com dadas palavras chave.

Métodos de aula

A tabela a seguir mostra os diferentes métodos de classe -

S.No. Método e Descrição
1

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

Cria uma nova instância ReusableAnalyzerBase.TokenStreamComponents para este analisador.

2

int getMaxTokenLength()

3

void setMaxTokenLength(int length)

Define o comprimento máximo permitido do token.

Métodos herdados

Esta classe herda métodos das seguintes classes -

  • 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() + "] ");
   }
}

Aplicação de exemplo

Vamos criar um aplicativo de teste Lucene para testar a pesquisa usando BooleanQuery.

Degrau Descrição
1

Crie um projeto com um nome LuceneFirstApplication em um pacote com.tutorialspoint.lucene conforme explicado no capítulo Lucene - Primeiro Aplicativo . Você também pode usar o projeto criado no capítulo Lucene - Primeiro Aplicativo como tal para este capítulo para compreender o processo de pesquisa.

2

Crie LuceneConstants.java conforme explicado no capítulo Lucene - Primeiro Aplicativo . Mantenha o resto dos arquivos inalterados.

3

Crie LuceneTester.java conforme mencionado abaixo.

4

Limpe e construa o aplicativo para garantir que a lógica de negócios esteja funcionando de acordo com os requisitos.

LuceneConstants.java

Esta classe é usada para fornecer várias constantes a serem usadas no aplicativo de amostra.

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 classe é usada para testar a capacidade de pesquisa da 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() + "] ");
      }
   }
}

Executando o Programa

Depois de concluir a criação do código-fonte, você pode prosseguir compilando e executando seu programa. Para fazer isso, mantenha oLuceneTester.Java guia de arquivo ativa e use a opção Executar disponível no IDE Eclipse ou use Ctrl + F11 para compilar e executar seu LuceneTesterinscrição. Se seu aplicativo for executado com sucesso, ele imprimirá a seguinte mensagem no console do Eclipse IDE -

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