`

compass学习笔记

阅读更多

以下是鄙人在学习compass所做的笔记(如果鄙人写的不是很清楚的话,可以从电驴或者迅雷上搜索v521刘伟老师的compass学习视频)。系统框架采用Struts2.1.6+Spring2.5.4+Hibernate3+compass2.1.0,JDK版本采用6.0的。

首先,需要将将SSH整合好。具体的我不在此说明,可以在google上进行搜索。我将重点说明compass如何与SSH进行整合。

使用compass框架,首先需要进行compass关于实体类的映射。compass在其文档中说明,一般是在实体类相对应的*.cpm.xml中进行配置的。但是在开发中,我们可以借助jdk关于标注的新特性,将此文件省略。具体代码如下所示:

如代码所示,实体类的类声明和属性声明分别加入了相应的标注。public class前面的“@Searchable”表示此类可以被索引,也就是此类对应的数据库可以被索引。属性id前的“@SearchableId”表示索引建立的id。其他属性前面的“@SearchableProperty(name="name")”表示此字段可以被索引、被检索。name=“name”表示此字段被索引后的名称。在检索类中,可以根据此名字指定搜索的字段名称。

建立索引的类(CompassIndexBuilder.java)

详细的解释可以观看视频,在此不再说明。

compass的配置写在同一个文件(applicationContext-compass)中,以便同一管理。内容如下:

在业务层进行数据检索的代码如下:

以上是关键部分的说明。在bs层中的检索方法searchProducts(String queryString)中,有很多地方需要深入的思考一下。比如:在“CompassHits hits = session.queryBuilder().queryString("name:" + queryString).toQuery().hits();”中的“name”就是至前面实体类中的“@SearchableProperty(name="name")”中“name”的值,表示只对该字段进行检索。又比如涉及到结果分页显示的话,该如何封装返回的结果。究竟是一次全部封装到List中还是每页显示n条就封装n条,翻页的时候继续hit呢?有待深入思考。

附件为样例程序,但是相关的jar包太大了,无法上传!需要自己查找。

分享到:
评论

相关推荐

    Compass原理深入学习笔记

    【Compass原理深入学习笔记】 Compass是一款基于Apache Lucene的全文搜索引擎框架,它为开发者提供了更高级别的抽象层,简化了搜索引擎的集成工作。在理解Compass之前,我们需要先了解全文检索的基本概念和原理。 ...

    完整compass工程+建库sql+学习资料

    `compass学习笔记.doc`是一份关于Compass的学习文档,可能包含了使用Compass的基本步骤,常见问题解答,以及一些最佳实践。这份文档对于理解Compass的工作原理和实际应用是非常有价值的。 `lucene总结.chm`和`...

    Extjs 5 学习笔记

    ### Extjs 5 学习笔记之 SenchaCmd 深入解析 #### 一、SenchaCmd 的简介 SenchaCmd 是一个跨平台的命令行工具,它为基于 ExtJS 和 Sencha Touch 应用程序的开发周期提供了全面的支持。从创建应用程序的基础结构到...

    compass和wellplan学习总结.doc

    本文档总结了Compass和WellPlan的学习笔记,涵盖了油气工业中常用的井trajectory设计和分析、Well Planning和设计等方面的知识点。 一、井trajectory设计和分析 井trajectory设计和分析是油气工业中非常重要的一环...

    ElasticSearch学习笔记

    ElasticSearch学习笔记 ElasticSearch是基于Apache Lucene的搜索和数据分析引擎,提供了RESTful API用于数据的索引、搜索和分析。本笔记将对ElasticSearch的基本概念、架构、应用场景和实现细节进行详细介绍。 一...

    spring+hibernate+jpa+struts1+struts2+springmvc+jquery+freemaker 学习笔记 案例.rar

    spring+hibernate+jpa+struts1+struts2+springmvc+jquery+freemaker 学习笔记 Compass将lucene、Spring、Hibernate三者结合

    android\Android学习笔记

    ### Android学习笔记精要 #### 一、Android平台概述与特性 Android平台是谷歌推出的针对移动设备的操作系统,集成了操作系统、中间件和关键应用程序,为开发者提供了完整的开发环境。其核心特性包括: 1. **应用...

    extensionfiles EE笔记分享

    "Lucene&Compass笔记"则专注于全文搜索引擎技术,Lucene是一个高性能、可扩展的信息检索库,而Compass是基于Lucene的一个对象关系映射(ORM)工具,它们在大数据处理和搜索应用中有着广泛应用。"项目笔记"可能涵盖了...

    seckill-master:SSM实战项目——Java高并发秒杀API,详细流程+学习笔记

    SSM实战项目——Java高并发秒杀API本文包括了项目的完整流程+开发过程中遇到的各种坑的总结+学习笔记和问题扩展,如果觉得README太长,我在blog里进行了分章,这是完成后的项目,(阿里云到期了orz)项目截图秒杀列表...

    MongoDB学习笔记—Linux下搭建MongoDB环境

    在MongoDB的日常使用中,还可以通过管理工具(如MongoDB Compass)进行可视化管理,监控数据库性能,以及进行备份、恢复等操作。总的来说,MongoDB是一个强大且灵活的数据库系统,尤其适合需要处理大量非结构化数据...

    ros_naviagtion_study:ros navigation原始代码注释,用于记录个人学习源码的笔记,如果想使用原始代码,请到ros wiki中下载,这里只是学习笔记-源码下载

    这个压缩包"ros_naviagtion_study"包含了对ROS Navigation Stack源代码的个人学习笔记,但并不是实际的源代码库,而是作者在学习过程中对代码的理解和注解。 在ROS Navigation Stack中,有几个关键组件和概念值得...

    CS-Notes:我的自学笔记,终身更新

    我的自学笔记,在学习MLSys和C ++,整理算法,操作系统,后续学习分布式系统,终身更新。 我不是贵系oi出身的大神,目前在以一个初学者的心态补习计算机知识,学习路径和心得可能更值得大家在一起。 欢迎交流任何...

    APM源码笔记

    可以通过阅读和运行提供的示例代码来学习ArduPilot的工作原理,如GPS.AUTO_test、INS_generic、AP_Compass_test和BARO_generic等。例如,要在Pixhawk上运行GPS_AUTO_test,需要在相应目录下执行`make px4-clean`、`...

    AK8963 android 平台驱动代码及资料

    5. **文档资料**:可能包括AK8963的数据手册、应用笔记、开发者指南等,这些文档详细解释了传感器的工作原理、接口规格、初始化流程以及常见问题解决方法。 6. **测试脚本**:用于验证驱动正确性的自动化测试脚本,...

    Web开发学习资料整理(第五月).docx

    描述提到“想学习HTML的可以看看,里面有我长久以来做的详细笔记,保证小白可看懂的”,说明这份资料适合初学者,特别是对HTML感兴趣的人群。 标签“HTM”暗示了文档可能涵盖了HTML相关的内容,但同时也提到了...

    html5框架PhoneGap API详解笔记(ppt及word版)

    通过以上介绍,我们可以看出PhoneGap是一个强大的工具,它让Web开发者能够轻松地跨平台开发移动应用,而无需深入学习各种原生编程语言。然而,PhoneGap的应用性能可能不如原生应用,因为它依赖于WebView组件,这可能...

    MATLAB 图形和动画编程.docx

    本篇学习笔记主要探讨MATLAB中的二维图形绘制及其相关功能,包括基本绘图命令、坐标轴控制、文本标注、图例和颜色条、特殊图形绘制以及数据交互。 首先,MATLAB提供了两种级别的二维图形绘制命令:高级绘图命令`...

Global site tag (gtag.js) - Google Analytics