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/
分享到:
相关推荐
在com.chenlb.mmseg4j.analysis包里扩展lucene analyzer。 MMSegAnalyzer默认使用max-word方式分词(还有:ComplexAnalyzer, SimplexAnalyzer, MaxWordAnalyzer)。
mmseg4j1.8.4分词工具,可以方便的集成在lucene后者solr中。
本人从搜狗词库下载后转化为Lucene中文分词所需的词库,里面搜集的都是官方推荐的内容本人亲测可用。使用Solr5.2.1测试
lucene中文分词 mmseg4j-1.8.5与lucene3.1兼容
mmseg4j分词,比较精确,可以跟lucene里面用
mmseg4j-core-1.10.0+mmseg4j-solr-2.3.0()mmseg4j-solr-2.3.0.jar 要求 lucene/solr [5.0, ])
Lucene中文分词 mmseg4j 2.3 源码
mmseg4j-1.9.1分词器,找了很久才找到,共享一下!
mmseg4j用Chih-Hao Tsai 的MMSeg算法实现的中文分词器,并实现lucene的analyzer和solr的TokenizerFactory以方便在Lucene和Solr中使用。 MMSeg 算法有两种分词方法:Simple和Complex,都是基于正向最大匹配。Complex...
mmseg4j 2.3 jar包 lucene中文分词器
基于Lucene的中文分词器代码paoding,IK,imdict,mmseg4j。测试可运行,输入一个段落,每个分词器的分词结果不同,可得到结果和所需时间。
能兼容solr-4.10.2的分词器,大礼包...包括IK分词器,mmseg4j分词器,庖丁分词器.都是经本人测试可用,其中mmseg4j与庖丁都是下载源码,修改重编译并测试生成的.希望大家喜欢.至于与solr的整合方式,网上很多,这里就不介绍了.
lucene中文分词工具包,自己用ant编译成功的。可以进行定制的分词器,同义词开发。作为工具包使用。官网没有提供,组要自己编译,方便用传上来
mmseg4j lucene 分词算法,对以往的版进行了大优化
学习Lucene,中文分词必备jar包。内部有文档,大大提高开发效率
solr 分词器 mmseg4j IKAnalyzer
lucene官网: http://lucene.apache.org ... https://code.google.com/p/mmseg4j/ (mmseg4j-1.9.1.v20130120-SNAPSHOT.zip) 查看分词库: http://code.google.com/p/luke/downloads/list (lukeall-4.0.0-ALPHA.jar )