Compass学习总结.doc

上传人:11****ws 文档编号:2990393 上传时间:2019-05-16 格式:DOC 页数:58 大小:357.50KB
下载 相关 举报
Compass学习总结.doc_第1页
第1页 / 共58页
Compass学习总结.doc_第2页
第2页 / 共58页
Compass学习总结.doc_第3页
第3页 / 共58页
Compass学习总结.doc_第4页
第4页 / 共58页
Compass学习总结.doc_第5页
第5页 / 共58页
点击查看更多>>
资源描述

1、所需工具包: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

2、.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-Prefer

3、ences-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 导入。第一个小例子创建项目工程新建

4、一个 Compass 工程(java project) ,将 paoding、compass 两个用户库导入将 paoding-analysis 目录下的 dic 目录拷贝到 src 目录下:将 paoding-analysissrc 目录下的 paoding-dic-home.properties 拷贝到src 目录下,在最后加一行:paoding.dic.home=classpath:dic如下图所示:程序目录结构如下:源代码Person.java 内容如下:package pass.bean;import pass.annotations.Index;import pass.annota

5、tions.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 Per

6、son(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() retu

7、rn 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,stor

8、e=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,sto

9、re=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.Do

10、cument;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;impor

11、t 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 ;/ SessionFactor

12、yBeforeClasspublic static void beforeClass() try / 编程式配置compass = new CompassAnnotationsConfiguration().setSetting(CompassEnvironment.CONNECTION,“file:/d:/index“)/ .setSetting(CompassEnvironment.CONNECTION,“file:/indexfile“);/在内存中建立索引/ 一元分词/二元分词/字典文件.setSetting(“compass.engine.analyzer.default.type“

13、,“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

14、()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

15、= 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(

16、“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();compas

17、sSession.rollback(); finally if (compassSession != null Testpublic void deleteIndex()CompassSession compassSession=compass.openSession();compassSession.delete(new Person(“sno1“);compassSmit();Testpublic void updateIndex()CompassSession compassSession=compass.openSession();compassSession.delete(new P

18、erson(“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“)!=n

19、ull)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.prin

20、tln(“标识:“+person.getPersonid()+“ 姓名:“+person.getPersonname()+“ 年龄:“+person.getAge()+“ 爱好:“+person.getFavority()+“ 备注:“+person.getRemarks();Testpublic void complexQuery()CompassSession compassSession=compass.openSession();CompassQueryBuilder queryBuilder = compassSession.queryBuilder();CompassHits hi

21、ts=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.highlight

22、er(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(

23、);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.

24、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.Searcha

25、bleId;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)

26、 this.sno = sno;public Student(String sno, String name, String favority, Integer age,String sex, String remarks) this.sno = sno;this.name = name;this.favority = favority;this.age = age;this.sex = sex;this.remarks = remarks;SearchableComponentpublic Class getAsclass() return asclass;public void setAs

27、class(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) this.name = name;SearchableProperty(index=Index.ANALYZED,store=Store.YES)public String getFavority() return favority;public void setFavority(String favority) this.favority = favority;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 实用文档资料库 > 策划方案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。