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]