您的位置:首页 > 其它

lucene使用IKAnalyzer3.2.8中文分词器进行索引的一个小例子

2011-11-07 08:29 561 查看
使用IKAnalyzer3.2.8中文分词器进行索引,并进行搜索的一个小例子。

例子需导入IKAnalyzer3.2.8.jar包以及lucene相关的包,例子中我用的lucene包为lucene-core-3.4.0.jar。

package com.ik;

import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.TopDocs;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.RAMDirectory;
import org.apache.lucene.util.Version;
import org.wltea.analyzer.lucene.IKAnalyzer;
import org.wltea.analyzer.lucene.IKQueryParser;
import org.wltea.analyzer.lucene.IKSimilarity;

public class IkLucene {

public static void main(String []args) throws Exception {
Directory directory = new RAMDirectory();
Analyzer analyzer = new IKAnalyzer();
IndexWriterConfig iwc = new IndexWriterConfig(Version.LUCENE_34, analyzer);
IndexWriter indexWriter = new IndexWriter(directory, iwc);

String str = "你好沈阳,这里是辽宁!欢迎光临!";
Document doc = new Document();
doc.add(new Field("contents",str,Field.Store.YES,Field.Index.ANALYZED));
indexWriter.addDocument(doc);

str = "我是作者,在沈阳工作!现在还是一个普通的职员";
doc = new Document();
doc.add(new Field("contents",str,Field.Store.YES,Field.Index.ANALYZED));
indexWriter.addDocument(doc);
indexWriter.close();

IndexSearcher searcher = new IndexSearcher(directory);
searcher.setSimilarity(new IKSimilarity());
String keyWords = "沈阳";
Query query = IKQueryParser.parse("contents",keyWords);
TopDocs topDocs = searcher.search(query, Integer.MAX_VALUE);

System.out.println(topDocs.totalHits);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: