Lucene - StandardAnalyzer

Questo è l'analizzatore più sofisticato ed è in grado di gestire nomi, indirizzi e-mail, ecc. Scrive in minuscolo ogni token e rimuove le parole comuni e la punteggiatura, se presenti.

Dichiarazione di classe

Di seguito è riportata la dichiarazione per il org.apache.lucene.analysis.StandardAnalyzer classe -

public final class StandardAnalyzer
   extends StopwordAnalyzerBase

Campi

Di seguito sono riportati i campi per org.apache.lucene.analysis.StandardAnalyzer classe -

  • static int DEFAULT_MAX_TOKEN_LENGTH - Questa è la lunghezza del token massima consentita predefinita.

  • static Set<?> STOP_WORDS_SET - Un insieme non modificabile contenente alcune parole inglesi comuni che di solito non sono utili per la ricerca.

Costruttori di classi

La tabella seguente mostra i diversi costruttori di classi:

S.No. Costruttore e descrizione
1

StandardAnalyzer(Version matchVersion)

Crea un analizzatore con le parole di arresto predefinite (STOP_WORDS_SET).

2

StandardAnalyzer(Version matchVersion, File stopwords)

Deprecato. Utilizzare invece StandardAnalyzer (versione, lettore).

3

StandardAnalyzer(Version matchVersion, Reader stopwords)

Costruisce un analizzatore con le parole chiave del lettore fornito.

4

StandardAnalyzer(Version matchVersion, Set<?> stopWords)

Costruisce un analizzatore con le parole chiave fornite.

Metodi di classe

La tabella seguente mostra i diversi metodi di classe:

S.No. Metodo e descrizione
1

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

Crea una nuova istanza ReusableAnalyzerBase.TokenStreamComponents per questo analizzatore.

2

int getMaxTokenLength()

3

void setMaxTokenLength(int length)

Imposta la lunghezza massima consentita del token.

Metodi ereditati

Questa classe eredita i metodi dalle seguenti classi:

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

Utilizzo

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

Applicazione di esempio

Creiamo un'applicazione Lucene di prova per testare la ricerca utilizzando BooleanQuery.

Passo Descrizione
1

Creare un progetto con un nome LuceneFirstApplication sotto un pacchetto com.tutorialspoint.lucene come spiegato nel capitolo Lucene - Prima applicazione . È inoltre possibile utilizzare il progetto creato nel capitolo Lucene - Prima applicazione come tale per questo capitolo per comprendere il processo di ricerca.

2

Creare LuceneConstants.java come spiegato nel capitolo Lucene - Prima applicazione . Mantieni invariato il resto dei file.

3

Crea LuceneTester.java come indicato di seguito.

4

Pulisci e crea l'applicazione per assicurarti che la logica di business funzioni secondo i requisiti.

LuceneConstants.java

Questa classe viene utilizzata per fornire varie costanti da utilizzare nell'applicazione di esempio.

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

Questa classe viene utilizzata per testare la capacità di ricerca della libreria 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() + "] ");
      }
   }
}

Esecuzione del programma

Una volta che hai finito con la creazione del sorgente, puoi procedere compilando ed eseguendo il tuo programma. Per fare ciò, tieni il fileLuceneTester.Java scheda file attiva e utilizzare l'opzione Esegui disponibile nell'IDE Eclipse o utilizzare Ctrl + F11 per compilare ed eseguire il tuo LuceneTesterapplicazione. Se l'applicazione viene eseguita correttamente, stamperà il seguente messaggio nella console di Eclipse IDE:

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