Lucene - StopAnalyzer

Este analisador funciona de forma semelhante ao SimpleAnalyzer e remove as palavras comuns como 'um', 'uma', 'o', etc.

Declaração de Classe

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

public final class StopAnalyzer
   extends StopwordAnalyzerBase

Campos

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

  • static Set<?> ENGLISH_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

StopAnalyzer(Version matchVersion)

Constrói um analisador que remove palavras em ENGLISH_STOP_WORDS_SET.

2

StopAnalyzer(Version matchVersion, File stopwordsFile)

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

3

StopAnalyzer(Version matchVersion, Reader stopwords)

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

4

StopAnalyzer(Version matchVersion, Set<?> stopWords)

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

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 field Name, Reader reader)

Cria um novo ReusableAnalyzerBase.TokenStreamComponents usado para tokenizar todo o texto no Reader fornecido.

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 displayTokenUsingStopAnalyzer() throws IOException {
   String text 
      = "Lucene is simple yet powerful java based search library.";
   Analyzer analyzer = new StopAnalyzer(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 sob 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 crie 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.StopAnalyzer;
import org.apache.lucene.analysis.TokenStream;
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.displayTokenUsingStopAnalyzer();
      } catch (IOException e) {
         e.printStackTrace();
      }
   }

   private void displayTokenUsingStopAnalyzer() throws IOException {
      String text 
         = "Lucene is simple yet powerful java based search library.";
      Analyzer analyzer = new StopAnalyzer(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 Eclipse IDE ou use Ctrl + F11 para compilar e executar seu LuceneTesterinscrição. Se o seu aplicativo for executado com êxito, ele imprimirá a seguinte mensagem no console do Eclipse IDE -

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