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"项目中,`paoding-analysis.jar`是包含mmseg4j分析器的Java库文件,它提供了与Solr交互的接口,使得Solr能够使用mmseg4j进行中文分词。`readme.txt`通常包含了关于如何...
然而,在处理中文分词时,Lucene原生的分词器可能无法满足复杂的中文语境需求,这时就需要引入第三方分词工具,如MMSEG4J。本文将深入探讨如何在Lucene项目中整合MMSEG4J,并提供一个实际的项目实例作为参考。 一、...
总的来说,MMseg4j中文分词词库是实现高质量中文分词的关键资源,它结合了搜狗词库的丰富词汇和MMseg4j的高效算法,为Lucene和Solr提供了强大的中文处理能力。正确地配置和使用词库,能够显著提升文本检索的准确性和...
mmseg4j是一款广泛使用的Java实现的中文分词库,它提供了高效且精准的中文分词功能。而“兼容solr4.10.3”意味着这个分词器已经过测试,可以无缝集成到Solr 4.10.3的搜索引擎环境中,用于提高中文文本处理的性能。 ...
在com.chenlb.mmseg4j.analysis包里扩展lucene analyzer。 MMSegAnalyzer默认使用max-word方式分词(还有:ComplexAnalyzer, SimplexAnalyzer, MaxWordAnalyzer)。
mmseg4j1.8.4分词工具,可以方便的集成在lucene后者solr中。
mmseg4j是一款针对Java平台的高效中文分词工具,因其准确性和高性能而在许多项目中得到广泛应用。 mmseg4j的设计灵感来源于MaxEnt Segmentation(最大熵分词)算法,这是一种基于统计模型的分词方法,它通过学习...
在Solr6中配置mmseg4j是为了实现中文分词,从而提升搜索效果。mmseg4j是基于Java的一个高性能中文分词库,它提供了多种分词算法,如最长匹配、最短路径等,以满足不同的分词需求。 首先,我们需要理解Solr6的基本...
**mmseg4j 2.3 Jar包:Lucene中文分词器详解** 在中文信息处理领域,分词是至关重要的第一步,它涉及到文本的预处理、搜索索引的构建以及信息检索等多个环节。mmseg4j是一款针对Java平台设计的高效、灵活的中文分词...
本篇文章将带你深入学习如何在Solr5中集成并使用MMSeg4J分词器,提升中文处理能力。 首先,我们来了解一下MMSeg4J。这是一个高效、灵活的Java实现的中文分词库,它采用了基于词频的动态最大匹配算法(MaxMatch),...
**mmseg4j-1.9.1** 是一个基于Java实现的中文分词库,它的出现是为了满足在Java环境中进行高效、精准的中文文本分词需求。在自然语言处理领域,分词是预处理阶段的关键步骤,它将连续的汉字序列切割成具有语义的词汇...
《中文分词器mmseg4j与Lucene5.x整合详解及源码解析》 中文分词是自然语言处理中的重要一环,尤其在中文文本分析、信息检索、机器翻译等领域有着广泛的应用。mmseg4j是一款高效、灵活的Java实现的中文分词工具,而...
mmseg4j是Java实现的中文分词库,它支持多种分词模式,包括最短路径分词、最长匹配分词以及全模式分词等,可以根据实际需求选择合适的模式。 当mmseg4j与Solr结合时,mmseg4j-solr便成为了一个强大的中文处理插件。...
其次,mmseg4j是基于Java实现的中文分词组件,它采用了MaxMatch(最大匹配法)算法,结合了词频统计信息,能够在一定程度上提高分词准确性。mmseg4j的特点在于其灵活性,用户可以根据需要调整分词模式,但可能在处理...
《mmseg4j在Lucene中文分词中的应用与实现》 在中文信息处理领域,分词是至关重要的一步,它决定了后续文本分析的准确性和效率。mmseg4j是Java环境下广泛使用的中文分词库,尤其在搜索引擎构建和文本挖掘中发挥着...
**mmseg4j-1.8.5** 是一个针对Lucene搜索引擎的中文分词库,主要用于提升中文信息处理的效率和准确性。该版本与Lucene 3.1版本兼容,意味着它可以在基于Lucene 3.1构建的信息检索系统中无缝集成,提供高效的中文分词...
mmseg4j是一款针对中文的高效分词库,而Solr作为Apache Lucene项目的一部分,是一个强大的全文搜索引擎服务器。当这两者结合时,可以为企业的信息检索系统提供强大的支持。然而,随着Solr版本的不断更新,如何使...
Lucene中文分词 mmseg4j 2.3 源码