Lucene - StandardAnalyzer

Il s'agit de l'analyseur le plus sophistiqué et capable de gérer les noms, adresses e-mail, etc. Il minuscule chaque jeton et supprime les mots courants et les ponctuations, le cas échéant.

Déclaration de classe

Voici la déclaration pour le org.apache.lucene.analysis.StandardAnalyzer classe -

public final class StandardAnalyzer
   extends StopwordAnalyzerBase

Des champs

Voici les champs pour le org.apache.lucene.analysis.StandardAnalyzer classe -

  • static int DEFAULT_MAX_TOKEN_LENGTH - Il s'agit de la longueur de jeton maximale autorisée par défaut.

  • static Set<?> STOP_WORDS_SET - Un ensemble non modifiable contenant des mots anglais courants qui ne sont généralement pas utiles pour la recherche.

Constructeurs de classe

Le tableau suivant montre les différents constructeurs de classe -

S.No. Constructeur et description
1

StandardAnalyzer(Version matchVersion)

Construit un analyseur avec les mots vides par défaut (STOP_WORDS_SET).

2

StandardAnalyzer(Version matchVersion, File stopwords)

Obsolète. Utilisez plutôt StandardAnalyzer (Version, Reader).

3

StandardAnalyzer(Version matchVersion, Reader stopwords)

Construit un analyseur avec les mots vides du lecteur donné.

4

StandardAnalyzer(Version matchVersion, Set<?> stopWords)

Construit un analyseur avec les mots vides donnés.

Méthodes de classe

Le tableau suivant montre les différentes méthodes de classe -

S.No. Méthode et description
1

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

Crée une nouvelle instance de ReusableAnalyzerBase.TokenStreamComponents pour cet analyseur.

2

int getMaxTokenLength()

3

void setMaxTokenLength(int length)

Définit la longueur maximale autorisée du jeton.

Méthodes héritées

Cette classe hérite des méthodes des classes suivantes -

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

Usage

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

Exemple d'application

Créons une application de test Lucene pour tester la recherche à l'aide de BooleanQuery.

Étape La description
1

Créez un projet avec un nom LuceneFirstApplication sous un package com.tutorialspoint.lucene comme expliqué dans le chapitre Lucene - Première application . Vous pouvez également utiliser le projet créé dans le chapitre Lucene - Première application en tant que tel pour ce chapitre pour comprendre le processus de recherche.

2

Créez LuceneConstants.java comme expliqué dans le chapitre Lucene - Première application . Gardez le reste des fichiers inchangés.

3

Créez LuceneTester.java comme indiqué ci-dessous.

4

Nettoyez et créez l'application pour vous assurer que la logique métier fonctionne conformément aux exigences.

LuceneConstants.java

Cette classe est utilisée pour fournir diverses constantes à utiliser dans l'exemple d'application.

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

Cette classe est utilisée pour tester la capacité de recherche de la bibliothèque 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() + "] ");
      }
   }
}

Exécution du programme

Une fois que vous avez terminé la création de la source, vous pouvez continuer en compilant et en exécutant votre programme. Pour ce faire, gardez leLuceneTester.Java onglet fichier actif et utilisez soit l'option Exécuter disponible dans l'EDI Eclipse, soit utilisez Ctrl + F11 pour compiler et exécuter votre LuceneTesterapplication. Si votre application s'exécute avec succès, elle imprimera le message suivant dans la console d'Eclipse IDE -

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