Lucene
来源:互联网 发布:郑杭生 知乎 编辑:程序博客网 时间:2024/04/28 15:47
如何用java实现lucene(只使用,不求甚解版-_-")
1.前提
lucene有7个包需要导入:analysis,document,index,queryParser,search,store,util
2.建立索引
IndexWriter writer = new IndexWriter("E:/index", new StandardAnalyze(),true,MaxFieldLength.UNLIMITED); //true代表覆盖原先数据,maxFieldLength用来限制Field的大小
Document doc = new Document();
doc.add(new Field("title", "lucene introduction", Field.Store.YES, Field.Index.ANALYZED,
Field.TermVector.WITH_POSITIONS_OFFSETS));
doc.add(new Field("time", "60", Field.Store.YES, Field.Index.ANALYZED,
Field.TermVector.WITH_POSITIONS_OFFSETS));
writer.addDocument(doc);
writer.optimize(); //优化
writer.close();
3.搜索
IndexSearcher searcher= new IndexSearcher("E:/index") Query query = new TermQuery(new Term("title", "lucene"));//单个字节查询
//Query query = new FuzzyQuery(new Term("title", "lucena"));//模糊查询
//Query query = new WildcardQuery(new Term("title", "lu*"));// 通配符查询 ?代表一个字符,*代表0到多个字符
//BooleanQuery query = new BooleanQuery();//条件查询
//BooleanQuery qson1 = new BooleanQuery();
//Query q1 = new TermQuery(new Term("title", "lucene"));
//qson1.add(q1, Occur.MUST);//MUST是必须满足的
//BooleanQuery qson2 = new BooleanQuery();
//Query q2= new TermQuery(new Term("sex", "woman"));
//qson2 .add(qson1, Occur.MUST_NOT);//MUST_NOT是必须不满足
//query.add(qson1, Occur.SHOULD);
//query.add(qson2, Occur.SHOULD);//SHOULD代表满足qson1或者满足qson2都可以
//PhraseQuery query = new PhraseQuery();//近距离查询
//query.setSlop(5);//距离设置为5
//query.add(new Term("title", "lucene"));
//query.add(new Term("title", "introduction"));//查询出title中lucene和introduction距离不超过5个字符的结果
//Query query = new PrefixQuery(new Term("title", "lu"));//WildcardQuery的lu*一样
//RangeQuery query = new RangeQuery(new Term("time", "50"),new Term("time", "60"), true);
//true代表[50,60],false代表(50,60)
Hits hits = searcher.search(query);
for (int i = 0; i < hits.length(); i++) {
Document d = hits.doc(i);
String title= d.get("title");
System.out.print(title+ " ");
}
这样,基本上就可以使用了
- lucene
- Lucene
- lucene
- lucene
- Lucene
- lucene
- lucene
- lucene
- Lucene
- Lucene
- lucene
- Lucene
- Lucene
- Lucene
- lucene
- lucene
- Lucene
- Lucene
- LWUIT资源文件分析二(图片)
- 一个字符导致oracle安装出现ora-12154
- ACE中TCP通信
- 尤菲·如月 与你有约 ぐりぐりキュートユフィ汉化补丁
- ACE中UDP通信
- Lucene
- 学习博客
- 学习C#操纵Visio之一:定位Shape
- Java Applet读写客户端串口——终极篇
- java谜题-2
- 求质数的文章
- 这句代码什么意思?img, div, input { behavior: url("iepngfix.htc") }
- c# 字符串的反转
- 在DELPHI中实现无标题窗体的移动最简单的方法