MMSeg4j + Lucene的应用实例
来源:互联网 发布:长沙新东方 知乎 编辑:程序博客网 时间:2024/06/06 02:57
原文出处
mmseg4j 发布也有一段时间了,前些日子忙着发布新的版本,修正 bug 之类的。使用示例一直拖到现在,其实 svn 上的 test 有使用 lucene 例子。如果你了解 lucene ,就不用例子也可以很方便与它集成。
运行结果:
mmseg4j 发布也有一段时间了,前些日子忙着发布新的版本,修正 bug 之类的。使用示例一直拖到现在,其实 svn 上的 test 有使用 lucene 例子。如果你了解 lucene ,就不用例子也可以很方便与它集成。
mmseg4j 有几个 analyzer:SimpleAnalyzer、ComplexAnalyzer、MaxWordAnalyzer、MMSegAnalyzer。前面三个都是继承 MMSegAnalyzer,MMSegAnalyzer 默认使用 max-word 方式分词。这些 analyzer 都有无参数的构造函数,还有一个带词库目录为参数的构造函数。怎么用也没多少可说的,看下 svn 里 test:
package com.chenlb.mmseg4j.lucene; import java.io.IOException; import junit.framework.TestCase; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; import org.apache.lucene.index.CorruptIndexException; import org.apache.lucene.index.IndexWriter; import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.queryParser.QueryParser; import org.apache.lucene.search.IndexSearcher; import org.apache.lucene.search.Query; import org.apache.lucene.search.ScoreDoc; import org.apache.lucene.search.TopDocs; import org.apache.lucene.store.Directory; import org.apache.lucene.store.RAMDirectory; import com.chenlb.mmseg4j.analysis.ComplexAnalyzer; import com.chenlb.mmseg4j.analysis.MaxWordAnalyzer; import com.chenlb.mmseg4j.analysis.SimpleAnalyzer; public class LuceneUseSimpleAnalyzerTest extends TestCase { Directory dir; Analyzer analyzer; @Override protected void setUp() throws Exception { String txt = "京华时报1月23日报道 昨天,受一股来自中西伯利亚的强冷空气影响,本市出现大风降温天气,白天最高气温只有零下7摄氏度,同时伴有6到7级的偏北风。"; //txt = "2008年底发了资金吗"; analyzer = new SimpleAnalyzer(); analyzer = new ComplexAnalyzer(); //analyzer = new MaxWordAnalyzer(); dir = new RAMDirectory(); IndexWriter iw = new IndexWriter(dir, analyzer); Document doc = new Document(); doc.add(new Field("txt", txt, Field.Store.YES, Field.Index.ANALYZED)); iw.addDocument(doc); iw.commit(); iw.optimize(); iw.close(); } public void testSearch() { try { IndexSearcher searcher = new IndexSearcher(dir); QueryParser qp = new QueryParser("txt", analyzer); Query q = qp.parse("西伯利亚"); //2008年底 System.out.println(q); TopDocs tds = searcher.search(q, 10); System.out.println("======size:"+tds.totalHits+"========"); for(ScoreDoc sd : tds.scoreDocs) { System.out.println(sd.score); System.out.println(searcher.doc(sd.doc).get("txt")); } } catch (CorruptIndexException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (ParseException e) { e.printStackTrace(); } } }
运行结果:
2009-4-26 22:41:02 com.chenlb.mmseg4j.Dictionary getDefalutPath信息: look up in mmseg.dic.path=null2009-4-26 22:41:02 com.chenlb.mmseg4j.Dictionary getDefalutPath信息: look up in user.dir=M:\workspace\mmseg4j/data2009-4-26 22:41:02 com.chenlb.mmseg4j.Dictionary loadDic信息: chars loaded time=391ms, line=12638, on file=M:\workspace\mmseg4j\data\chars.dic2009-4-26 22:41:02 com.chenlb.mmseg4j.Dictionary loadDic信息: words loaded time=16ms, line=1, on file=M:\workspace\mmseg4j\data\words-my.dic2009-4-26 22:41:06 com.chenlb.mmseg4j.Dictionary loadDic信息: words loaded time=3406ms, line=157202, on file=M:\workspace\mmseg4j\data\words.dic2009-4-26 22:41:06 com.chenlb.mmseg4j.Dictionary loadDic信息: sort time=0ms2009-4-26 22:41:06 com.chenlb.mmseg4j.Dictionary loadDic信息: load dic use time=3844ms2009-4-26 22:41:06 com.chenlb.mmseg4j.Dictionary loadUnit信息: unit loaded time=16ms, line=22, on file=M:\workspace\mmseg4j\data\units.dictxt:西伯利亚======size:1========0.047945753京华时报1月23日报道 昨天,受一股来自中西伯利亚的强冷空气影响,本市出现大风降温天气,白天最高气温只有零下7摄氏度,同时伴有6到7级的偏北风。
- MMSeg4j + Lucene的应用实例
- Lucene中文分词mmseg4j
- lucene版本升级到4.6.0以上之后使用mmseg4j分词器遇到的问题
- lucene的简单实例
- lucene的简单实例
- lucene的简单实例
- lucene的简单实例
- lucene的首次应用
- Lucene的基本应用
- 我的第一 lucene 实例
- lucene搜索简单的实例
- mmseg4j 中文分词简单代码实例
- lucene整合中文分词器mmseg4j和高亮highlighter
- Lucene 6.0 配置(二)整合mmseg4j分词器
- Solr+MMSEG4J的简单学习
- Lucene的原理和应用
- sis中lucene 的应用
- Lucene的作用以及应用
- VC6中dll的创建和使用
- glMatrixMode()函数
- aps.net用Windows认证连接sql server 2005
- Windows Phone - 提交使用非官方支持语言的应用
- 【ZT】一个程序占用内存的分类
- MMSeg4j + Lucene的应用实例
- 字符转转换成JSON对象
- Siri说过的冷笑话
- Encryption security protocol issues when using HTTPS
- 养成良好的书写Sql的习惯
- 如何解决java异常NoClassDefFoundError(序列化和发序列化)
- Oracle 用户、对象权限、系统权限
- spring classpath*
- 51单片机读写U盘 430单片机读写U盘 U盘读写设备