- 浏览: 304759 次
文章分类
最新评论
-
流年末年:
那四个参数还是没看懂.....能不能解释下showPassst ...
我写的密码强度验证方法(原创) -
kingcs2008:
// 验证pws.jsshowPassstrength(&qu ...
我写的密码强度验证方法(原创) -
h957355152:
请问博主这个怎么用呢?我直接放到jsp里面调用showPass ...
我写的密码强度验证方法(原创) -
qq_15138059:
我写的全国省市县三级联动菜单,拿出来和大家分享了(原创) -
valenon:
评论呢?从MAIL FROM命令开始貌似就出错了:500 Er ...
如何发送伪造的电子邮件
本实例建立在ssh结构下,利用compass2.2。
1 要建立的索引类(只要是POJO的实体类就可以)
package com.cgb.ky.resources.model;
public class ProjectApply implements java.io.Serializable {
private String id;
//项目名称
private String projectName="";
//申请人姓名
private String realName="";
//国内外现状
private String statusOf="";
//主要研究内容(研究内容提要)
private String mainContent="";
//要达到的目标、成果形式及主要技术指标
private String reachObject="";
//前期工作基础
private String beforeWork="";
......
}
2.建立mycompass.cmd.xml文件
<?xml version="1.0"?>
<!DOCTYPE compass-core-meta-data PUBLIC
"-//Compass/Compass Core Meta Data DTD 2.2//EN"
"http://www.compass-project.org/dtd/compass-core-meta-data-2.2.dtd">
<compass-core-meta-data>
<meta-data-group id="mycompass" displayName="My Compass">
<description>Mycompass Meta Data</description>
<uri>http://com/darkhe/sample/mycompass</uri>
<alias id="ProjectApply" displayName="ProjectApply">
<description>ProjectApply alias</description>
<uri>http://com/darkhe/sample/mycompass/alias/ProjectApply</uri>
<name>ProjectApply</name>
</alias>
<meta-data id="projectName" displayName="projectName">
<description>projectName</description>
<uri>http://com/darkhe/sample/mycompass/alias/projectName</uri>
<name>projectName</name>
</meta-data>
<meta-data id="projectTypeName" displayName="projectTypeName">
<description>projectTypeName</description>
<uri>http://com/darkhe/sample/mycompass/alias/projectTypeName</uri>
<name>projectTypeName</name>
</meta-data>
<meta-data id="realName" displayName="realName">
<description>realName</description>
<uri>http://com/darkhe/sample/mycompass/alias/realName</uri>
<name>realName</name>
</meta-data>
<meta-data id="statusOf" displayName="statusOf">
<description>statusOf</description>
<uri>http://com/darkhe/sample/mycompass/alias/statusOf</uri>
<name>statusOf</name>
</meta-data>
<meta-data id="mainContent" displayName="mainContent">
<description>mainContent</description>
<uri>http://com/darkhe/sample/mycompass/alias/mainContent</uri>
<name>mainContent</name>
</meta-data>
</meta-data-group>
</compass-core-meta-data>
3.建立mycompass.cpm.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE compass-core-mapping PUBLIC
"-//Compass/Compass Core Mapping DTD 2.2//EN"
"http://www.compass-project.org/dtd/compass-core-mapping-2.2.dtd">
<!-- 这里的包名必须和pojo的包名一致 -->
<compass-core-mapping package="com.cgb.ky.resources.model">
<!-- 定义实体及其字段的对应关系 -->
<!-- 注意实体及其字段的名称的大小写应当与pojo对象一致,而不是与数据库一致
关于pojo与数据库的对应表的一致性关系由hibernate的映谢文件定义,而不是这个文件
当前映射文件只定义compass与hibernate的关系 -->
<class name="ProjectApply" alias="${mycompass.ProjectApply}">
<id name="id" />
<property name="projectName">
<meta-data >${mycompass.projectName}</meta-data>
</property>
<property name="projectTypeName">
<meta-data >${mycompass.projectTypeName}</meta-data>
</property>
<property name="realName">
<meta-data >${mycompass.realName}</meta-data>
</property>
<property name="statusOf">
<meta-data >${mycompass.statusOf}</meta-data>
</property>
<property name="mainContent">
<meta-data >${mycompass.mainContent}</meta-data>
</property>
</class>
</compass-core-mapping>
4.建立mycommpass.cfg.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<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="target" />
</connection>
<searchEngine>
<!-- 因是使用自己的分词算法,所以这里的类型必须是CustomAnalyzer -->
<analyzer name="ChineseAnalyzer" type="CustomAnalyzer"
analyzerClass="org.apache.lucene.analysis.cn.ChineseAnalyzer">
<stopWords>
<stopWord value="test" />
</stopWords>
</analyzer>
</searchEngine>
</compass>
</compass-core-config>
5.修改applicationContext.xml文件,添加如下内容
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:compass="http://www.compass-project.org/schema/spring-core-config"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.compass-project.org/schema/spring-core-config
http://www.compass-project.org/schema/spring-compass-core-config-2.2.xsd">
<!-- COMPASS START -->
<bean id="compass" class="org.compass.spring.LocalCompassBean">
<property name="resourceLocations">
<list>
<value>classpath:mycompass.cmd.xml</value>
<value>classpath:mycompass.cpm.xml</value>
</list>
</property>
<property name="compassSettings">
<props>
<prop key="compass.engine.connection">D:/index</prop>
<prop
key="compass.transaction.factory">org.compass.spring.transaction.SpringSyncTransactionFactory</prop>
</props>
</property>
<property name="configLocation">
<value>classpath:mycompass.cfg.xml</value>
</property>
<property name="transactionManager">
<ref local="txManager" />
</property>
</bean>
<bean id="hibernateGpsDevice" class="org.compass.gps.device.hibernate.HibernateGpsDevice">
<property name="name"><value>hibernateDevice</value></property>
<property name="sessionFactory"><ref local="sessionFactory" /></property>
<property name="nativeExtractor"><bean
class="org.compass.spring.device.hibernate.SpringNativeHibernateExtractor"
/></property>
</bean>
<bean id="compassGps" class="org.compass.gps.impl.SingleCompassGps" init-method="start" destroy-method="stop">
<property name="compass"><ref bean="compass" /></property>
<property name="gpsDevices">
<list>
<ref bean="hibernateGpsDevice" />
</list>
</property>
</bean>
<!-- 定时重建索引(利用quartz)或随Spring ApplicationContext启动而重建索引 -->
<bean id="compassIndexBuilder"
class="com.cgb.compass.index.CompassIndexBuilder"
lazy-init="false">
<property name="compassGps" ref="compassGps" />
<property name="buildIndex" value="true" />
<property name="lazyTime" value="5" />
</bean>
<!-- COMPASS END -->
6.建立IOC.java Index.java Search.java文件如下
IOC.java
package com.cgb.compass.index;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class IOC {
private static ApplicationContext context = null;
private static boolean isInit = false;
private IOC() {
super();
}
private static void init() {
if (isInit == false) {
String[] xmlfilenames = { "applicationContext.xml" };
context = new ClassPathXmlApplicationContext(xmlfilenames);
isInit = true;
}
}
/**
*
* @return
*/
public static ApplicationContext getContext() {
if (context == null || isInit == false) {
init();
}
return context;
}
/**
*
* @param name
* @return
*/
public static Object getBean(String name) {
return getContext().getBean(name);
}
}
index.java
package com.cgb.compass.index;
import java.io.FileNotFoundException;
import org.compass.gps.CompassGps;
import org.springframework.context.ApplicationContext;
public class Index {
/**
* @param args
*/
public static void main(String[] args) throws FileNotFoundException {
// TODO Auto-generated method stub
// 加裁自定义词典
//Dictionary.loadCustomDictionary();
ApplicationContext context = IOC.getContext();
// 得到spring环境中已经配置和初始化好的compassGps对象
CompassGps compassGps = (CompassGps) context.getBean("compassGps");
// 调用index方法建立索引
compassGps.index();
}
}
Search.java
package com.cgb.compass.index;
import java.io.FileNotFoundException;
import org.compass.core.Compass;
import org.compass.core.CompassCallbackWithoutResult;
import org.compass.core.CompassException;
import org.compass.core.CompassHits;
import org.compass.core.CompassSession;
import org.compass.core.CompassTemplate;
import org.compass.core.Resource;
import org.springframework.context.ApplicationContext;
import com.cgb.ky.resources.model.ProjectApply;
public class Searcher {
/**
* @param args
*/
public static void main(String[] args) throws FileNotFoundException {
// 加裁自定义词典
//DictionaryUtils.loadCustomDictionary();
ApplicationContext context = IOC.getContext();
Compass compass = (Compass) context.getBean("compass");
CompassTemplate template = new CompassTemplate(compass);
template.execute(new CompassCallbackWithoutResult() {
protected void doInCompassWithoutResult(CompassSession session)
throws CompassException {
CompassHits hits = session.find("钢铁");
System.out.println("Found [" + hits.getLength()
+ "] hits for [钢铁] query");
System.out
.println("======================================================");
ProjectApply pa = new ProjectApply();
for (int i = 0; i < hits.getLength(); i++) {
// print(hits, i);
pa = (ProjectApply)hits.data(i);
System.out.println(pa.getProjectName());
}
hits.close();
}
});
}
public static void print(CompassHits hits, int hitNumber) {
Object value = hits.data(hitNumber);
Resource resource = hits.resource(hitNumber);
System.out.println("ALIAS [" + resource.getAlias() + "] SCORE ["
+ hits.score(hitNumber) + "]");
System.out.println(":::: " + value);
System.out.println("");
}
}
按照以上建立,没错误后,先运行Index.java再运行search.java文件则可。
注意的是:xml配置文件中xmlns ,xsi:schemaLocation等引用要准确,不然会报错。
发表评论
-
全国学校和地区数据库
2012-04-08 03:14 2641全国学校和地区数据库 -
提升struts2的性能
2012-03-30 14:39 808freemarker 升级为2.3.14 og ... -
JAVA项目之SSH编码规范
2012-03-26 00:19 947编码规范目的:风格统 ... -
浅谈千万级PV/IP规模高性能高并发网站架构
2012-03-21 23:42 1316浅谈千万级PV/IP 规模高性能高并发网站架构 ... -
struts2的通用分页工具条
2012-03-07 11:17 1740java组件 package com.tag; im ... -
myeclipse中项目上面有红叉如何解决?
2012-03-06 13:50 6626项目中没有错误,却发现有一个红叉,怎么都消不掉,这是为什么呢? ... -
数据库表设计的基本原则
2012-03-02 08:47 9791.动态数据和静态数据分离,比如统计作用的列comment_c ... -
struts1.x、struts2.x和springmvc浅析(转载)
2012-02-27 09:59 1043入住javaeye也要1年半了,第一次给自己的blog丰富点. ... -
testsaslauthd报 0: NO "authentication failed" 的问题
2012-02-17 00:39 4773输入 ./testsaslauthd -u userID -p ... -
CentOS5.3+Nginx0.7.57+Postfix+Extmail邮件系统安装配置
2012-02-17 00:37 1012、 ... -
中外伟人观之对比,架构
2012-02-16 20:59 397世界上每一个国家都有他们的伟人,但各国的伟人观却不 ... -
postfix用到的包
2012-02-16 15:20 788The Postfix RPM I produce use ... -
通过Telnet来发送邮件
2012-02-16 10:28 968有些时候我们通过写代码来发送邮件. 有些时候, 代码可以正 ... -
sendmail发件人显示为xxx@localhost.localdomain的解决办法
2012-02-15 22:07 5152大 | 中 | 小 1 ... -
架构演进-实例篇(转载)
2012-02-05 18:03 8081引言 在标题的取名上,不敢说颇费心机,也算得上花 ... -
消息提示的架构演进-理论篇(转载)
2012-02-05 18:02 725项目是一个互联网 ... -
通告(公告),消息(站内短信),提醒的设计<一>:通告(转载)
2012-02-05 18:00 13441 业务描述 首先我们 ...
相关推荐
SSH2+Compass2.2搜索实例是一个基于Java Web开发的综合项目,它结合了Struts2.2.3、Spring 3.0.6、Hibernate3.6以及Compass2.2这四个核心技术,旨在提供一个高效且灵活的搜索功能。这个完整的工程是一个很好的学习...
这个实例"STRUTS SPRING COMPASS"将这四个组件集成在一起,构建了一个完整的Java企业级应用解决方案。 首先,让我们详细了解一下这些框架的核心概念: 1. **STRUTS**:Struts是一个基于MVC设计模式的Java Web框架...
标题 "整合compass2.0 spring hibernate示例源程序" 提供了我们即将探讨的核心内容,即一个结合了Compass 2.0、Spring和Hibernate的集成示例。这个项目旨在展示如何在Java应用程序中有效地利用这三个强大的开源框架...
标题“compass_hibernate_spring2.zip”提示我们这个压缩包可能包含了关于 Compass、Hibernate 和 Spring 三者结合使用的示例或教程。Compass 是一个全文搜索引擎,Hibernate 是一个流行的 Java ORM(对象关系映射)...
《 Compass、Hibernate与Spring的整合应用详解 》 在现代企业级Java开发中,数据持久化是不可或缺的一部分,而Hibernate作为流行的ORM(对象关系映射)框架,极大地简化了数据库操作。然而,对于复杂的搜索需求,...
根据HTML页面压缩的可查询的Compass最新API,是个人 压缩成Chm的,支持索引和搜索功能,3分应该不贵吧.
标题提及的"COMPASS+spring构建自己的搜索引擎"是关于如何使用Compass搜索引擎框架与Spring框架集成,构建一个自定义的全文搜索引擎。Compass是一个开源的搜索引擎库,它提供了与ORM框架(如Hibernate)的集成,使得...
标签“compass_hibernate_spring3.zip”再次确认了压缩包的内容,可能包含了一个完整的示例项目,展示如何在 Spring 3 应用中配置和使用 Compass 与 Hibernate 的集成。 压缩包内的单一文件“compass_hibernate_...
2. **索引数据**:使用Hibernate的事件监听器或注解,自动将持久化对象转换为Compass文档,建立索引。这一步确保了数据库中的新数据能够被搜索。 3. **搜索接口**:在Struts2的Action类中,创建一个处理搜索请求的...
4. **事务管理**:由于Compass可以与Spring集成,所以它可以利用Spring的事务管理,确保索引更新与数据操作在同一事务中完成,保证数据一致性。 **集成步骤** 1. **引入依赖**:在项目中添加Compass和SSH框架的...
在本实例中,我们有一个可直接运行的Compass全文检索系统,已经集成了SSH(Struts、Spring、Hibernate)框架,这是一个常见的企业级应用开发组合。 首先,让我们深入了解一下Compass。Compass是一个开源项目,它的...
四、基于SSH的Compass实例 假设在一个基于SSH(Spring+Struts+Hibernate)架构的项目中使用Compass框架,首先需要在项目中加入Compass相关的jar包,然后对实体bean进行标注,例如: ```java @Searchable public ...
本项目是一个基于Java技术栈,整合了Hibernate、Spring JPA以及Compass的图书商城系统,提供了全面的功能,适合用于课程设计、大作业、毕业设计、项目练习或学习演示。下面将详细阐述该项目所涉及的技术点及其重要性...
3. **索引数据**:通过Compass的API将ORM框架中的对象自动或手动转换为Lucene文档并建立索引。 4. **搜索操作**:使用查询API执行搜索请求,获取结果集。 5. **结果处理**:将搜索结果反序列化回业务对象,供应用...
4. **初始化Compass**:启动Compass实例,这会自动建立索引结构。 5. **索引数据**:当数据插入或更新时,Compass会自动处理索引的同步。 6. **执行查询**:使用Compass提供的查询API执行全文检索,获取结果并转换...
标题中的“Lucene+compass+spring+jdbc+庖丁的一个例子”揭示了这是一个关于整合多个技术来构建一个搜索系统的示例。在这个系统中,我们有以下几个关键组件: 1. **Lucene**: Apache Lucene 是一个高性能、全文本...
compass+ibatis+spring+struts2整合开发compass+ibatis+spring+struts2整合开发compass+ibatis+spring+struts2整合开发compass+ibatis+spring+struts2整合开发