Compass


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();
	}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值