此分析器分割在基于非字母字符的文檔的文本,然后小寫(xiě)它們。
以下是org.apache.lucene.analysis.SimpleAnalyzer類(lèi)的聲明:
public final class SimpleAnalyzer extends ReusableAnalyzerBase
S.N. | 構(gòu)造函數(shù)和說(shuō)明 |
---|---|
1 |
SimpleAnalyzer() 不推薦使用。使用SimpleAnalyzer(版本)代替 |
2 |
SimpleAnalyzer(Version matchVersion) 創(chuàng)建一個(gè)新的SimpleAnalyzer |
S.N. | 方法 & 描述 |
---|---|
1 |
protected ReusableAnalyzerBase.TokenStreamComponents createComponents(String fieldName, Reader reader) 創(chuàng)建此analyzer的新ReusableAnalyzerBase.TokenStreamComponents實(shí)例。 |
這個(gè)類(lèi)從以下類(lèi)繼承的方法:
org.apache.lucene.analysis.ReusableAnalyzerBase
org.apache.lucene.analysis.Analyzer
java.lang.Object
private void displayTokenUsingSimpleAnalyzer() throws IOException{ String text = "Lucene is simple yet powerful java based search library."; Analyzer analyzer = new SimpleAnalyzer(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() + "] "); } }
讓我們創(chuàng)建一個(gè)測(cè)試Lucene的應(yīng)用程序中使用BooleanQuery測(cè)試搜索。
步驟 | 描述 |
---|---|
1 | 創(chuàng)建下名稱(chēng)為L(zhǎng)uceneFirstApplication的一個(gè)項(xiàng)目作為解釋Lucene的應(yīng)用在包packagecom.yiibai.lucene下,在第一個(gè)應(yīng)用程序的篇章。也可以使用Lucene創(chuàng)建的項(xiàng)目理解搜索過(guò)程。 |
2 | 創(chuàng)建LuceneConstants.java作為L(zhǎng)ucene的解釋- 第一應(yīng)用程序一章。保持其它的文件不變。 |
3 | 創(chuàng)建LuceneTester.java如下所述。 |
4 | 清理和構(gòu)建應(yīng)用程序,以確保業(yè)務(wù)邏輯按要求工作。 |
LuceneConstants.java
這個(gè)類(lèi)是用來(lái)提供可應(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è)類(lèi)是用來(lái)測(cè)試Lucene庫(kù)的搜索能力。
package com.yiibai.lucene; import java.io.IOException; import java.io.StringReader; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.SimpleAnalyzer; import org.apache.lucene.analysis.TokenStream; 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.displayTokenUsingSimpleAnalyzer(); } catch (IOException e) { e.printStackTrace(); } } private void displayTokenUsingSimpleAnalyzer() throws IOException{ String text = "Lucene is simple yet powerful java bas