本文章是对Compass官方文档的摘抄,方便查询
1.CompassSession的用法
CompassConfiguration conf =
new CompassConfiguration().configure().addClass(Author.class);
Compass compass = conf.buildCompass();
CompassSession session = compass.openSession();
try {
...
session.save(author);
CompassHits hits = session.find("jack london");
Author a = (Author) hits.data(0);
Resource r = hits.resource(0);
...
session.commit();
} catch (CompassException ce) {
session.rollback();
}
2.CompassTransaction的用法
CompassConfiguration conf =
new CompassConfiguration().configure().addClass(Author.class);
Compass compass = conf.buildCompass();
CompassSession session = compass.openSession();
CompassTransaction tx = null;
try {
tx = session.beginTransaction();
...
session.save(author);
CompassHits hits = session.find("jack london");
Author a = (Author) hits.data(0);
Resource r = hits.resource(0);
...
tx.commit();
} catch (CompassException ce) {
if (tx != null) tx.rollback();
} finally {
session.close();
}
3.CompassSession对搜索和索引都有效果,Compass也为搜索或者索引提供单独的简化的API:CompassSearchSession和CompassIndexSession,用法与CompassSession一致
4.Template(模板)和CallBack(回调)
CompassTemplate和CompassCallback,使用模板的话可以省略事务相关代码的书写,如:
CompassConfiguration conf =
new CompassConfiguration().configure().addClass(Author.class);
Compass compass = conf.buildCompass();
CompassTemplate template = new CompassTemplate(compass);
template.save(author); // open a session, transaction, and closes both
Author a = (Author) template.execute(new CompassCallback() {
public Object doInCompass(CompassSession session) {
// all the actions here are within the same session
// and transaction
session.save(author);
CompassHits hits = session.find("london");
...
return session.load(id);
}
});
分享到:
相关推荐
【Compass原理深入学习笔记】 Compass是一款基于Apache Lucene的全文搜索引擎框架,它为开发者提供了更高级别的抽象层,简化了搜索引擎的集成工作。在理解Compass之前,我们需要先了解全文检索的基本概念和原理。 ...
Compass概念: 1:Compass相当于hb的SessionFactory 2:CompassSession相当于hb的Session 3:CompassTransaction相当于hb的transaction。 <br>Compass也是采用CompassConfiguration(装载配置和映射文件...
`compass学习笔记.doc`是一份关于Compass的学习文档,可能包含了使用Compass的基本步骤,常见问题解答,以及一些最佳实践。这份文档对于理解Compass的工作原理和实际应用是非常有价值的。 `lucene总结.chm`和`...
### Extjs 5 学习笔记之 SenchaCmd 深入解析 #### 一、SenchaCmd 的简介 SenchaCmd 是一个跨平台的命令行工具,它为基于 ExtJS 和 Sencha Touch 应用程序的开发周期提供了全面的支持。从创建应用程序的基础结构到...
本文档总结了Compass和WellPlan的学习笔记,涵盖了油气工业中常用的井trajectory设计和分析、Well Planning和设计等方面的知识点。 一、井trajectory设计和分析 井trajectory设计和分析是油气工业中非常重要的一环...
ElasticSearch学习笔记 ElasticSearch是基于Apache Lucene的搜索和数据分析引擎,提供了RESTful API用于数据的索引、搜索和分析。本笔记将对ElasticSearch的基本概念、架构、应用场景和实现细节进行详细介绍。 一...
spring+hibernate+jpa+struts1+struts2+springmvc+jquery+freemaker 学习笔记 Compass将lucene、Spring、Hibernate三者结合
### Android学习笔记精要 #### 一、Android平台概述与特性 Android平台是谷歌推出的针对移动设备的操作系统,集成了操作系统、中间件和关键应用程序,为开发者提供了完整的开发环境。其核心特性包括: 1. **应用...
"Lucene&Compass笔记"则专注于全文搜索引擎技术,Lucene是一个高性能、可扩展的信息检索库,而Compass是基于Lucene的一个对象关系映射(ORM)工具,它们在大数据处理和搜索应用中有着广泛应用。"项目笔记"可能涵盖了...
SSM实战项目——Java高并发秒杀API本文包括了项目的完整流程+开发过程中遇到的各种坑的总结+学习笔记和问题扩展,如果觉得README太长,我在blog里进行了分章,这是完成后的项目,(阿里云到期了orz)项目截图秒杀列表...
在MongoDB的日常使用中,还可以通过管理工具(如MongoDB Compass)进行可视化管理,监控数据库性能,以及进行备份、恢复等操作。总的来说,MongoDB是一个强大且灵活的数据库系统,尤其适合需要处理大量非结构化数据...
这个压缩包"ros_naviagtion_study"包含了对ROS Navigation Stack源代码的个人学习笔记,但并不是实际的源代码库,而是作者在学习过程中对代码的理解和注解。 在ROS Navigation Stack中,有几个关键组件和概念值得...
可以通过阅读和运行提供的示例代码来学习ArduPilot的工作原理,如GPS.AUTO_test、INS_generic、AP_Compass_test和BARO_generic等。例如,要在Pixhawk上运行GPS_AUTO_test,需要在相应目录下执行`make px4-clean`、`...
1. Sass是一种CSS预处理器,它扩展了CSS的功能,如变量、嵌套规则、混合和导入。 2. Sass需要Ruby环境,并通过命令行工具进行编译,例如`sass-convert`用于转换Sass到SCSS或反之。 3. Sass的特点包括完全兼容CSS3,...
1. **驱动源代码**:包含了与AK8963传感器交互的C语言代码,这些代码通常位于Linux内核的`drivers/iio/magnetometer`目录下,包括初始化函数、数据读取函数、中断服务例程等。 2. **设备树配置**:在嵌入式Linux...
通过以上介绍,我们可以看出PhoneGap是一个强大的工具,它让Web开发者能够轻松地跨平台开发移动应用,而无需深入学习各种原生编程语言。然而,PhoneGap的应用性能可能不如原生应用,因为它依赖于WebView组件,这可能...
OpenGL_Learning 通过学习OpenGL教程——ogldev,自己实现数学库,一步步学习OpenGL 每一子文件夹对应一小节,并且子文件夹中有markdown的学习笔记
本篇学习笔记主要探讨MATLAB中的二维图形绘制及其相关功能,包括基本绘图命令、坐标轴控制、文本标注、图例和颜色条、特殊图形绘制以及数据交互。 首先,MATLAB提供了两种级别的二维图形绘制命令:高级绘图命令`...