`
xypcn
  • 浏览: 8710 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Lucene + mmseg4j 中文分词记要

阅读更多

http://javadoc.org.cn/home.php?mod=space&uid=2&do=blog&id=19

package test;

import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.Term;
import org.apache.lucene.queryParser.QueryParser;
import org.apache.lucene.search.BooleanQuery;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.ScoreDoc;
import org.apache.lucene.search.TermQuery;
import org.apache.lucene.search.TopDocs;
import org.apache.lucene.search.BooleanClause.Occur;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;
import org.apache.lucene.util.Version;
import org.junit.Test;

import com.tuyard.groupen.SpiderImpl;

public class GoodsSearch {

 @Test
 public void testQuery() {
  try {

   Directory indexDirectory = FSDirectory.open(SpiderImpl.indexDateDir);
   IndexSearcher searcher = new IndexSearcher(indexDirectory, true);

   BooleanQuery query = new BooleanQuery();
   Query termQuery = new TermQuery(new Term("city", String.valueOf(3))); // 基本/精确
                                      // 查询
   query.add(termQuery, Occur.MUST);// 根据索引中的document生成时的设置,可以实现精确记录
   QueryParser qp = new QueryParser(Version.LUCENE_29, "content", SpiderImpl.Analyzer);
   Query qcontent = qp.parse("东北");
   query.add(qcontent, Occur.MUST);
   //
   TopDocs tds = searcher.search(query, 10);
   // request.setAttribute("paging", Paging.getPagingString(tds.totalHits,
   // pageSize, cpage, "/q.htm?p=$&q=" + URLEncoder.encode(str, "utf-8") +
   // ".htm"));
   StringBuffer sb = new StringBuffer();
   for (ScoreDoc sd : tds.scoreDocs) {
    System.out.println(sd.score);
    sb.append(searcher.doc(sd.doc).get("id")).append(",");
    System.out.println(searcher.doc(sd.doc).get("id"));
   }
   System.out.println("==" + sb.toString());
   // String sql = "select * from TB_Goods where id in(" + sb + ")";
   // request.setAttribute("list", objs[2]);
  } catch (Exception e) {
   e.printStackTrace();
  }
 }

 @Test
 public void testBuilder() {
  try {
   String txt = "京华时报1月23日报道 昨天,受一股来自中西伯利亚的强冷空气影响,本市出现大风降温天气,白天最高气温只有零下7摄氏度,同时伴有6到7级的偏北风。";
   IndexWriter iwriter = new IndexWriter(Search.goodsIndex, Search.Analyzer, true,
     IndexWriter.MaxFieldLength.LIMITED);

   Document doc = new Document();
   doc.add(new Field("txt", txt, Field.Store.YES, Field.Index.ANALYZED));
   iwriter.addDocument(doc);
   iwriter.commit();
   iwriter.optimize();
   iwriter.close();

  } catch (Exception e) {
   e.printStackTrace();
  }
 }

 @Test
 public void testSearch() {
  try {
   IndexSearcher searcher = new IndexSearcher(Search.goodsIndex, true);
   QueryParser qp = new QueryParser(Version.LUCENE_29, "txt", Search.Analyzer);
   Query q = qp.parse("西伯利亚");
   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 (Exception e) {
   e.printStackTrace();
  }

 }
}

 



相关的jar文件: http://www.apache.org/dist/lucene/java/lucene-2.9.3.zip


http://code.google.com/p/mmseg4j/

 

分享到:
评论

相关推荐

    Solr3.2 + mmseg4j-1.8.4中文搜索引擎_Demo

    在"Solr3.2+mmseg4j-1.8.4中文搜索引擎 demo"项目中,`paoding-analysis.jar`是包含mmseg4j分析器的Java库文件,它提供了与Solr交互的接口,使得Solr能够使用mmseg4j进行中文分词。`readme.txt`通常包含了关于如何...

    lucene整合mmseg4j实例和项目实例

    然而,在处理中文分词时,Lucene原生的分词器可能无法满足复杂的中文语境需求,这时就需要引入第三方分词工具,如MMSEG4J。本文将深入探讨如何在Lucene项目中整合MMSEG4J,并提供一个实际的项目实例作为参考。 一、...

    MMseg4j中文分词词库

    总的来说,MMseg4j中文分词词库是实现高质量中文分词的关键资源,它结合了搜狗词库的丰富词汇和MMseg4j的高效算法,为Lucene和Solr提供了强大的中文处理能力。正确地配置和使用词库,能够显著提升文本检索的准确性和...

    兼容solr4.10.3的mmseg4j-1.9.1分词器

    mmseg4j是一款广泛使用的Java实现的中文分词库,它提供了高效且精准的中文分词功能。而“兼容solr4.10.3”意味着这个分词器已经过测试,可以无缝集成到Solr 4.10.3的搜索引擎环境中,用于提高中文文本处理的性能。 ...

    mmseg4j分词器

    在com.chenlb.mmseg4j.analysis包里扩展lucene analyzer。 MMSegAnalyzer默认使用max-word方式分词(还有:ComplexAnalyzer, SimplexAnalyzer, MaxWordAnalyzer)。

    mmseg4j1.8.4分词工具

    mmseg4j1.8.4分词工具,可以方便的集成在lucene后者solr中。

    mmseg4j分词

    mmseg4j是一款针对Java平台的高效中文分词工具,因其准确性和高性能而在许多项目中得到广泛应用。 mmseg4j的设计灵感来源于MaxEnt Segmentation(最大熵分词)算法,这是一种基于统计模型的分词方法,它通过学习...

    solr6配置mmseg4j

    在Solr6中配置mmseg4j是为了实现中文分词,从而提升搜索效果。mmseg4j是基于Java的一个高性能中文分词库,它提供了多种分词算法,如最长匹配、最短路径等,以满足不同的分词需求。 首先,我们需要理解Solr6的基本...

    mmseg4j 2.3 jar包

    **mmseg4j 2.3 Jar包:Lucene中文分词器详解** 在中文信息处理领域,分词是至关重要的第一步,它涉及到文本的预处理、搜索索引的构建以及信息检索等多个环节。mmseg4j是一款针对Java平台设计的高效、灵活的中文分词...

    跟益达学Solr5之使用MMSeg4J分词器

    本篇文章将带你深入学习如何在Solr5中集成并使用MMSeg4J分词器,提升中文处理能力。 首先,我们来了解一下MMSeg4J。这是一个高效、灵活的Java实现的中文分词库,它采用了基于词频的动态最大匹配算法(MaxMatch),...

    mmseg4j-1.9.1

    **mmseg4j-1.9.1** 是一个基于Java实现的中文分词库,它的出现是为了满足在Java环境中进行高效、精准的中文文本分词需求。在自然语言处理领域,分词是预处理阶段的关键步骤,它将连续的汉字序列切割成具有语义的词汇...

    中文分词器(mmseg4j + luncene5.X)源码+jar包

    《中文分词器mmseg4j与Lucene5.x整合详解及源码解析》 中文分词是自然语言处理中的重要一环,尤其在中文文本分析、信息检索、机器翻译等领域有着广泛的应用。mmseg4j是一款高效、灵活的Java实现的中文分词工具,而...

    mmseg4j-solr-mmseg4j-solr-2.2.0.zip

    mmseg4j是Java实现的中文分词库,它支持多种分词模式,包括最短路径分词、最长匹配分词以及全模式分词等,可以根据实际需求选择合适的模式。 当mmseg4j与Solr结合时,mmseg4j-solr便成为了一个强大的中文处理插件。...

    word分词器、ansj分词器、mmseg4j分词器、ik-analyzer分词器分词效果评估

    其次,mmseg4j是基于Java实现的中文分词组件,它采用了MaxMatch(最大匹配法)算法,结合了词频统计信息,能够在一定程度上提高分词准确性。mmseg4j的特点在于其灵活性,用户可以根据需要调整分词模式,但可能在处理...

    mmseg4j-all-with-dic-1.8.6-sources.jar和mmseg4j-all-with-dic-1.8.6.jar

    《mmseg4j在Lucene中文分词中的应用与实现》 在中文信息处理领域,分词是至关重要的一步,它决定了后续文本分析的准确性和效率。mmseg4j是Java环境下广泛使用的中文分词库,尤其在搜索引擎构建和文本挖掘中发挥着...

    mmseg4j-1.8.5

    **mmseg4j-1.8.5** 是一个针对Lucene搜索引擎的中文分词库,主要用于提升中文信息处理的效率和准确性。该版本与Lucene 3.1版本兼容,意味着它可以在基于Lucene 3.1构建的信息检索系统中无缝集成,提供高效的中文分词...

    mmseg4j完美适配solr5.2.1

    mmseg4j是一款针对中文的高效分词库,而Solr作为Apache Lucene项目的一部分,是一个强大的全文搜索引擎服务器。当这两者结合时,可以为企业的信息检索系统提供强大的支持。然而,随着Solr版本的不断更新,如何使...

    mmseg4j 2.3 源码

    Lucene中文分词 mmseg4j 2.3 源码

Global site tag (gtag.js) - Google Analytics