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]