鍍金池/ 教程/ 大數(shù)據(jù)/ Lucene StandardAnalyzer類
Lucene TermRangeQuery類
Lucene排序
Lucene Query類
Lucene搜索操作
Lucene TokenStream
Lucene IndexWriter類
Lucene Term類
Lucene Token
Lucene索引操作
Lucene Field選項(xiàng)
Lucene BooleanQuery類
Lucene StandardAnalyzer類
Lucene字段
Lucene添加文檔操作
Lucene環(huán)境設(shè)置
Lucene Searching類
Lucene StopAnalyzer類
Lucene第一個(gè)應(yīng)用程序
Lucene MatchAllDocsQuery類
Lucene IndexSearcher類
Lucene索引類
Lucene更新文檔操作
Lucene教程
Lucene PrefixQuery類
Lucene Analyzer類
Lucene TopDocs類
Lucene TermQuery類
Lucene文檔
Lucene查詢編程
Lucene WildcardQuery類
Lucene WhitespaceAnalyzer
Lucene SimpleAnalyzer類
Lucene目錄
Lucene刪除文檔操作
Lucene索引過程
Lucene FuzzyQuery類
Lucene PhraseQuery類
Lucene分析

Lucene StandardAnalyzer類

這是最復(fù)雜的分析,并能處理的姓名,電子郵件地址等,它小寫每個(gè)標(biāo)記,并刪除常用詞和標(biāo)點(diǎn)符號(如有)。

類聲明

以下是org.apache.lucene.analysis.StandardAnalyzer類的聲明:

public final class StandardAnalyzer
   extends StopwordAnalyzerBase

字段

  • static int DEFAULT_MAX_TOKEN_LENGTH - 默認(rèn)情況下允許的最大長度令牌

  • static Set<?> STOP_WORDS_SET - 一個(gè)不可修改的組包含一些常用的英語單詞,通常不用于搜索有用的。

類構(gòu)造函數(shù)

S.N. 構(gòu)造函數(shù)和說明
1 StandardAnalyzer(Version matchVersion)
建立使用默認(rèn)停用詞(STOP_WORDS_SET)分析儀
2 StandardAnalyzer(Version matchVersion, File stopwords)
不推薦使用。使用StandardAnalyzer(版本,讀取器)來代替。
3 StandardAnalyzer(Version matchVersion, Reader stopwords)
建立來自給定的讀取器停用詞的分析。
4 StandardAnalyzer(Version matchVersion, Set<?> stopWords)
建立使用給定的停止字的分析。

類方法

S.N. 方法及說明
1 protected ReusableAnalyzerBase.TokenStreamComponents createComponents(String fieldName, Reader reader)
創(chuàng)建此analyzer 的新 ReusableAnalyzerBase.TokenStreamComponents 實(shí)例。
2 int getMaxTokenLength() 
3 void setMaxTokenLength(int length)
設(shè)置允許的最大長度的令牌。

方法繼承

這個(gè)類從以下類繼承的方法:

  • org.apache.lucene.analysis.StopwordAnalyzerBase

  • org.apache.lucene.analysis.ReusableAnalyzerBase

  • org.apache.lucene.analysis.Analyzer

  • java.lang.Object

使用

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

應(yīng)用程序示例

讓我們創(chuàng)建一個(gè)測試Lucene的應(yīng)用程序使用BooleanQuery測試搜索。

步驟 描述
1 創(chuàng)建名稱為LuceneFirstApplication的項(xiàng)目在packagecom.yiibai.lucene下的Lucene用于解釋 Lucene應(yīng)用程序理解搜索過程。
2 創(chuàng)建LuceneConstants.java作為Lucene的解釋- 第一應(yīng)用程序一章。保持其它的文件不變。
3 創(chuàng)建LuceneTester.java如下所述。
4 清理和構(gòu)建應(yīng)用程序,以確保業(yè)務(wù)邏輯按要求工作。

LuceneConstants.java

這個(gè)類是用來提供可應(yīng)用于示例應(yīng)用程序中使用的各種常量。

package com.yiibai.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

這個(gè)類是用來測試Lucene庫的搜索能力。

package com.yiibai.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上一篇:Lucene SimpleAnalyzer類下一篇:Lucene文檔