您的位置:首页 > 其它

Compass

2014-03-17 09:41 309 查看
http://www.compass-project.org/

一  导包

注意lucene的版本 2.0



配置文件

compass.cfg.xml

<compass-core-config xmlns="http://www.compass-project.org/schema/core-config"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.compass-project.org/schema/core-config http://www.compass-project.org/schema/compass-core-config-2.2.xsd">
<compass name="default">
<connection>
<!--
索引库的位置
-->
<file path="./indexDir"/>
</connection>

<mappings>
<class name="cn.itcast.compass0909.javabean.Article" />
</mappings>

</compass>
</compass-core-config>
@Searchable
public class Article {
private Long id;
private String title;
private String content;
@SearchableId(name="id",store=Store.YES,index=Index.NOT_ANALYZED)
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@SearchableProperty(name="title",store=Store.YES,index=Index.ANALYZED)
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
@SearchableProperty(name="content",store=Store.YES,index=Index.ANALYZED)
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
}

/**
* 增、删、改、查
* @author Administrator
*   session.create就是往索引库中加入一条数据,不管id值是否重复
*   session.save
*       如果id值已经存在了,则覆盖,如果不存在则增加
*
*/
public class ArticleIndex {
@Test
public void testCreateIndex(){
CompassConfiguration configuration = new CompassConfiguration();
configuration.configure();
Compass compass = configuration.buildCompass();
CompassSession session = compass.openSession();
Article article = new  Article();
article.setId(1L);
article.setTitle("lucene可以做搜索引擎");
article.setContent("asdfasdf");
session.create(article);
session.close();
}

@Test
public void testSearchIndex(){
CompassConfiguration configuration = new CompassConfiguration();
configuration.configure();
Compass compass = configuration.buildCompass();
CompassSession session = compass.openSession();

CompassHits hits = session.find("lucene");
for(int i=0;i<hits.length();i++){
Article article = (Article)hits.data(i);
System.out.println(article.getContent());
}
}

@Test
public void testDeleteIndex(){
CompassConfiguration configuration = new CompassConfiguration();
configuration.configure();
Compass compass = configuration.buildCompass();
CompassSession session = compass.openSession();

Article article = (Article)session.get(Article.class, 1L);
session.delete(article);
session.close();
}

@Test
public void testUpdateIndex(){
CompassConfiguration configuration = new CompassConfiguration();
configuration.configure();
Compass compass = configuration.buildCompass();
CompassSession session = compass.openSession();
Article article = new  Article();
article.setId(1L);
article.setTitle("lucene可以做搜索引擎");
article.setContent("asdfasdf");
session.save(article);
session.close();
}

}

@Test
public void testQuery(){
CompassConfiguration configuration = new CompassConfiguration();
configuration.configure();
Compass compass = configuration.buildCompass();
CompassSession session = compass.openSession();
CompassQueryBuilder queryBuilder = session.queryBuilder();
CompassQuery compassQuery = queryBuilder.matchAll();
queryBuilder.wildcard("title", "l*");
CompassHits hits = compassQuery.hits();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: