




已阅读5页,还剩53页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
所需工具包:paoding-analysis-2.0.4-beta.zippaoding-analysispaoding-analysis.jarcompass-2.2.0-with-dependencies.zipcompass-2.2.0distcommons-logging.jarcompass-2.2.0distcompass-2.2.0.jarcompass-2.2.0distlucenelucene-analyzers.jarcompass-2.2.0distlucenelucene-core.jarcompass-2.2.0distlucenelucene-highlighter.jarcompass-2.2.0distlucenelucene-queries.jarcompass-2.2.0distlucenelucene-snowball.jarcompass-2.2.0distlucenelucene-spellchecker.jarcompass-2.2.0libjakarta-commons commons-dbcp.jarcompass-2.2.0libjakarta-commons commons-logging.jarcompass-2.2.0libjakarta-commons commons-pool.jar创建用户库:Windows-Preferences-user libraries-paoding:将paoding-analysis.jar导入compass:将commons-logging.jar、compass-2.2.0.jar、lucene-analyzers.jar、lucene-core.jar、lucene-highlighter.jar、lucene-queries.jar、lucene-snowball.jar、lucene-spellchecker.jar、commons-dbcp.jar、commons-logging.jar、commons-pool.jar导入。第一个小例子创建项目工程新建一个Compass工程(java project),将paoding、compass两个用户库导入将paoding-analysis目录下的dic目录拷贝到src目录下:将paoding-analysissrc目录下的perties拷贝到src目录下,在最后加一行:paoding.dic.home=classpath:dic如下图所示:程序目录结构如下:源代码Person.java内容如下:package pass.bean;import pass.annotations.Index;import pass.annotations.Searchable;import pass.annotations.SearchableId;import pass.annotations.SearchableProperty;import pass.annotations.Store;Searchablepublic class Person private String personid;private String personname;private String favority;private Integer age;private String remarks;public Person() public Person(String personid) this.personid = personid;public Person(String personid, String personname, String favority,Integer age, String remarks) this.personid = personid;this.personname = personname;this.age = age;this.favority=favority;this.remarks = remarks;SearchableIdpublic String getPersonid() return personid;public void setPersonid(String personid) this.personid = personid;SearchableProperty(index=Index.ANALYZED,store=Store.YES)public String getPersonname() return personname;public void setPersonname(String personname) this.personname = personname;SearchableProperty(index=Index.ANALYZED,store=Store.NO)public Integer getAge() return age;public void setAge(Integer age) this.age = age;SearchableProperty(index=Index.NOT_ANALYZED,store=Store.YES)public String getRemarks() return remarks;public void setRemarks(String remarks) this.remarks = remarks;SearchableProperty(index=Index.ANALYZED,store=Store.YES)public String getFavority() return favority;public void setFavority(String favority) this.favority = favority;PersonTest.java内容如下: package junit.test;import java.io.File;import java.io.IOException;import java.util.Collection;import java.util.Iterator;import org.apache.lucene.document.Document;import org.apache.lucene.index.IndexReader;import org.apache.lucene.store.Directory;import org.apache.lucene.store.FSDirectory;import pass.annotations.config.CompassAnnotationsConfiguration;import pass.core.Compass;import pass.core.CompassHits;import pass.core.CompassQuery.SortDirection;import pass.core.CompassQuery.SortPropertyType;import pass.core.CompassQueryBuilder;import pass.core.CompassSession;import pass.core.config.CompassEnvironment;import org.junit.BeforeClass;import org.junit.Test;import pass.bean.Person;public class PersonTest private static Compass compass ;/ -SessionFactoryBeforeClasspublic static void beforeClass() try / 编程式配置compass = new CompassAnnotationsConfiguration().setSetting(CompassEnvironment.CONNECTION,file:/d:/index)/ .setSetting(CompassEnvironment.CONNECTION,file:/indexfile);/在内存中建立索引/ 一元分词/二元分词/字典文件.setSetting(compass.engine.analyzer.default.type,net.paoding.analysis.analyzer.PaodingAnalyzer).setSetting(compass.engine.highlighter.default.formatter.simple.pre,).setSetting(compass.engine.highlighter.default.formatter.simple.post,)/ 此处须注意.addScan(pass).buildCompass(); catch (Exception e) e.printStackTrace();Testpublic void buildIndex()CompassSession compassSession = compass.openSession();try compassSession.beginTransaction();Person person1 = new Person(sno1, 张三, 篮球足球,10, 张三的个人说明);compassSession.create(person1);Person person2 = new Person(sno2, 李四, 门球乒乓球,11, 李四的个人说明);compassSession.create(person2);Person person3 = new Person(sno3, 马五, 门球足球, 12, 马五的个人说明);compassSession.create(person3);Person person4 = new Person(sno4, 王六, 羽毛球篮球, 13, 王六的个人说明);compassSession.create(person4);Person person5 = new Person(sno5, 钱七, 篮球乒乓球,15, 钱七的个人说明);compassSession.create(person5);Person person6=new Person(sno6,赵二,足球乒乓,14,赵二爱好乒乓);compassSession.create(person6);Person person7=new Person(sno7,王一,乒乓,14,王一爱好乒乓);compassSession.create(person7);Person person8=new Person(sno8,铁公鸡,台球,14,铁公鸡爱好乒乓);compassSession.create(person8);compassSmit(); catch (Exception e) e.printStackTrace();compassSession.rollback(); finally if (compassSession != null & !compassSession.isClosed() compassSession.close();Testpublic void deleteIndex()CompassSession compassSession=compass.openSession();compassSession.delete(new Person(sno1);compassSmit();Testpublic void updateIndex()CompassSession compassSession=compass.openSession();compassSession.delete(new Person(sno2);compassSession.create(new Person();compassSmit();Test public void queryIndex()CompassSession compassSession=compass.openSession();CompassHits hits=compassSession.find(篮球);for(int i=0;ihits.length();i+)Person person=(Person)hits.data(i);if(hits.highlighter(i).fragment(personname)!=null)person.setPersonname(hits.highlighter(i).fragment(personname);if(hits.highlighter(i).fragment(favority)!=null)person.setFavority(hits.highlighter(i).fragment(favority);if(hits.highlighter(i).fragment(remarks)!=null)person.setRemarks(hits.highlighter(i).fragment(remarks);System.out.println(标识:+person.getPersonid()+ 姓名:+person.getPersonname()+ 年龄:+person.getAge()+ 爱好:+person.getFavority()+ 备注:+person.getRemarks();Testpublic void complexQuery()CompassSession compassSession=compass.openSession();CompassQueryBuilder queryBuilder = compassSession.queryBuilder();CompassHits hits=queryBuilder.bool()/.addMust(queryBuilder.spanEq(remarks,个人说明 ).addMust(queryBuilder.spanEq(personid, sno3).toQuery().addSort(postion, SortPropertyType.STRING, SortDirection.REVERSE).hits();for(int i=0;ihits.length();i+)Person person=(Person)hits.data(i);person.setRemarks(hits.highlighter(i).fragment(remarks);System.out.println(person.getPersonname()+ +person.getRemarks();Testpublic void readerCFS()Directory dir;File file;try file=new File(D:/index/index/person);dir = FSDirectory.getDirectory(file);IndexReader indexReader = IndexReader.open(dir);int max = indexReader.maxDoc();for (int i = 0; i max; i+) Document document = indexReader.document(i);Collection conn = null;conn = indexReader.getFieldNames(IndexReader.FieldOption.ALL);Iterator iter = conn.iterator();for (Iterator iterator = conn.iterator(); iterator.hasNext();) String s = (String) iterator.next();System.out.println(i + + s + + document.get(s); catch (IOException e) e.printStackTrace();finally第二个小例子(SearchableComponent)源代码Student.java内容如下:package pass.bean;import pass.annotations.Index;import pass.annotations.Searchable;import pass.annotations.SearchableComponent;import pass.annotations.SearchableId;import pass.annotations.SearchableProperty;import pass.annotations.Store;Searchablepublic class Student private String sno;private String name;private String favority;private Integer age;private String sex;private String remarks;private Class asclass;public Student() public Student(String sno) this.sno = sno;public Student(String sno, String name, String favority, Integer age,String sex, String remarks) this.sno = sno; = name;this.favority = favority;this.age = age;this.sex = sex;this.remarks = remarks;SearchableComponentpublic Class getAsclass() return asclass;public void setAsclass(Class asclass) this.asclass = asclass;SearchableIdpublic String getSno() return sno;public void setSno(String sno) this.sno = sno;SearchableProperty(index=Index.ANALYZED,store=Store.YES,name=studentName)public String getName() return name;public void setName(String name) = name;SearchableProperty(index=Index.ANALYZED,store=Store.YES)public String getFavority() return favority;public void setFavority(String favority) this.favority = favority;SearchableProperty(index=Index.NO,store=Store.YES)public Integer getAge() return age;public void setAge(Integer age) this.age = age;SearchableProperty(index=Index.NO,store=Store.YES)public String getSex() return sex;public void setSex(String sex) this.sex = sex;SearchableProperty(index=Index.ANALYZED,store=Store.YES,name=studentRemarks)public String getRemarks() return remarks;public void setRemarks(String remarks) this.remarks = remarks;Class.java内容如下:package pass.bean;import pass.annotations.Index;import pass.annotations.Searchable;import pass.annotations.SearchableProperty;import pass.annotations.Store;Searchable(root=false)public class Class private String cid;private String name;private String remarks;public Class() public Class(String cid, String name, String remarks) this.cid = cid; = name;this.remarks = remarks;SearchableProperty(index=Index.NO,store=Store.YES)public String getCid() return cid;public void setCid(String cid) this.cid = cid;SearchableProperty(index=Index.ANALYZED,store=Store.YES,name=className)public String getName() return name;public void setName(String name) = name;SearchableProperty(index=Index.ANALYZED,store=Store.YES,name=classRemarks)public String getRemarks() return remarks;public void setRemarks(String remarks) this.remarks = remarks;StudentTest.java内容如下:package junit.test;import pass.annotations.config.CompassAnnotationsConfiguration;import pass.core.Compass;import pass.core.CompassHits;import pass.core.CompassIndexSession;import pass.core.CompassQueryBuilder;import pass.core.CompassSearchSession;import pass.core.config.CompassEnvironment;import org.junit.BeforeClass;import org.junit.Test;import pass.bean.Class;import pass.bean.Student;public class StudentTest private static Compass compass;BeforeClasspublic static void beforeClass() try / 编程式配置compass = new CompassAnnotationsConfiguration().setSetting(CompassEnvironment.CONNECTION,file:/d:/index)/ .setSetting(CompassEnvironment.CONNECTION,file:/indexfile);/在内存中建立索引/ 一元分词/二元分词/字典文件.setSetting(compass.engine.analyzer.default.type,net.paoding.analysis.analyzer.PaodingAnalyzer).setSetting(compass.engine.highlighter.default.formatter.simple.pre,).setSetting(compass.engine.highlighter.default.formatter.simple.post,)/ 此处须注意.addScan(pass).buildCompass(); catch (Exception e) e.printStackTrace();Testpublic void buildIndex()CompassIndexSession compassIndexSession=compass.openIndexSession();Class class1=new Class(c1, 一班,一班同学游戏打的好);Student student1=new Student(sno1,老一,篮球乒乓球,20,男,老一喜欢打篮球);student1.setAsclass(class1);compassIndexSession.create(student1);Student student2=new Student(sno2,老二,足球门球,20,男,老二喜欢打足球);student2.setAsclass(class1);compassIndexSession.create(student2);Class class2=new Class(c2, 二班,二班同学魔兽打的好);Student student3=new Student(sno3,老三,台球篮球,20,男,老三喜欢打足球);student3.setAsclass(class2);compassIndexSession.create(student3);Student student4=new Student(sno4,老四,足球乒乓球,20,男,老四喜欢打足球);student4.setAsclass(class2);compassIndexSession.create(student4);compassIndexSmit();Testpublic void updateIndex() Testpublic void deleteIndex()CompassIndexSession compassIndexSession=compass.openIndexSession();compassIndexSession.delete(new Student(sno1);compassIndexSession.delete(new Student(sno2);compassIndexSession.delete(new Student(sno3);compassIndexSession.delete(new Student(sno4);compassIndexSmit();Testpublic void queryIndex()CompassSearchSession compassSearchSession=compass.openSearchSession();CompassHits hits=compassSearchSession.find(老一);System.out.println(查询结果个数:+hits.length();for(int i=0;ihits.length();i+)Student student=(Student)hits.data(i);if(hits.highlighter(i).fragment(studentName)!=null)student.setName(hits.highlighter(i).fragment(studentName);if(hits.highlighter(i).fragment(favority)!=null)student.setFavority(hits.highlighter(i).fragment(favority);if(hits.highlighter(i).fragment(studentRemarks)!=null)student.setRemarks(hits.highlighter(i).fragment(studentRemarks);if(hits.highlighter(i).fragment(className)!=null)student.getAsclass().setName(hits.highlighter(i).fragment(className);if(hits.highlighter(i).fragment(classRemarks)!=null)student.getAsclass().setRemarks(hits.highlighter(i).fragment(classRemarks);System.out.println(学号:+student.getSno()+ 学生姓名:+student.getName()+ 年龄:+student.getAge()+ 爱好:+student.getFavority()+ 备注:+student.getRemarks()+n+ 班级标识:+student.getAsclass().getCid()+ 班级名称:+student.getAsclass().getName()+ 班级备注:+student.getAsclass().getRemarks();Testpublic void complexQueryIndex()CompassSearchSession compassSearchSession=compass.openSearchSession();CompassQueryBuilder queryBuilder=compassSearchSession.queryBuilder();CompassHits hits=queryBuilder.bool().addMust(queryBuilder.spanEq(studentRemarks, 老).toQuery().hits();System.out.println(查询结果个数:+hits.length();for(int i=0;ihits.length();i+)Student student=(Student)hits.data(i);if(hits.highlighter(i).fragment(studentName)!=null)student.setName(hits.highlighter(i).fragment(studentName);if(hits.highlighter(i).fragment(favority)!=null)student.setFavority(hits.highlighter(i).fragment(favority);if(hits.highlighter(i).fragment(studentRemarks)!=null)student.setRemarks(hits.highlighter(i).fragment(studentRemarks);if(hits.highlighter(i).fragment(className)!=null)student.getAsclass().setName(hits.highlighter(i).fragment(className);if(hits.highlighter(i).fragment(classRemarks)!=null)student.getAsclass().setRemarks(hits.highlighter(i).fragment(classRemarks);System.out.println(学号:+student.getSno()+ 学生姓名:+student.getName()+ 年龄:+student.getAge()+ 爱好:+student.getFavority()+ 备注:+student.getRemarks()+n+ 班级标识:+student.getAsclass().getCid()+ 班级名称:+student.getAsclass().getName()+ 班级备注:+student.getAsclass().getRemarks();Spring整合Compass创建用户库spring2.5.6导入下列jar包:spring-framework-2.5.6distspring.jarspring-framework-2.5.6libjakarta-commonscommons-logging.jarspring-framework-2.5.6libjakarta-commonscommons-pool.jarspring-framework-2.5.6libjakarta-commonscommons-dbcp.jarspring-framework-2.5.6libj2eecommon-annotations.jarspring-framework-2.5.6libaspectjaspectjrt.jarspring-framework-2.5.6libaspectjaspectjweaver.jarspring-framework-2.5.6libcglibcglib-nodep-2.1_3.jar将用户库导入到项目中。程序目录如下图:源代码person.java类如下图:package pass.bean;import pass.annotations.Index;import pass.annotations.Searchable;import pass.annotations.SearchableId;import pass.annotations.SearchableProperty;import pass.annotations.Store;Searchablepublic class Person private String personid;private String personname;private String favority;private Integer age;private String remarks;public Person() public Person(String personid) this.personid = personid;public Person(String personid, String personname, String favority,Integer age, String remarks) this.personid = personid;this.personname = personname;this.a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 窄轨机车车辆设计与人文因素考核试卷
- 硅冶炼生产质量管理与质量检测考核试卷
- 管道工程行业政策支持与机遇考核试卷
- 罐装水销售合同管理与法律风险考核试卷
- 赛事期间的赛场气象服务与应急措施考核试卷
- 舞台灯光设备在马戏团表演中的应用考核试卷
- 漆器工艺品的网络营销策略考核试卷
- 船舶拆除作业人员安全培训考核试卷
- 输送设备智能传感网络构建与优化考核试卷
- 新能源汽车换电站项目投资与建设管理合同
- 2025年年中考物理综合复习(压轴特训100题55大考点)(原卷版+解析)
- 西红门镇生活垃圾转运站及环卫停车场工程报告表
- 2025年信息系统监理师考试题(附答案)
- 机械装配技术试题及答案
- GB/T 44971-2024土壤硒含量等级
- 医院检验科实验室生物安全程序文件SOP
- 压缩空气系统验证方案
- 中暑预防与应急处理
- 病原学检测阴性肺结核诊断流程T∕CHATA 008-2020
- 尾矿库基础知识最全PPT资料课件
- dgt801系列数字式发电机变压器组保护装置调试大纲
评论
0/150
提交评论