Blog信息 |
blog名称: 日志总数:1304 评论数量:2242 留言数量:5 访问次数:7593628 建立时间:2006年5月29日 |

| |
[Hibernate]Using Lifecycles and Interceptors to update Lucene searches 软件技术
lhwork 发表于 2007/1/22 14:52:33 |
Everybody but your boss understands that a relational database isn't "searchable" in the usual sense - you have to explicitly identify keywords, maintain search tables, etc. Fortunately it's easy to do incremental updates of Lucene (http://jakarta.apache.org/lucene/docs/index.html) indexes via the Hibernate Lifecycle |
|
[Java Open Source]Compass读文档笔记 软件技术
lhwork 发表于 2007/1/22 14:42:34 |
Compass是基于Lucene 的更高层的抽象,假如你正打算做关于搜索方面的模块的话,那我建议你使用Compass,他提供了可配置方案,而且比Lucene更加容易使用。如果你的系统中使用Spring, Hibernate,JDO, IBatis。。。 Compass是最好的选择,他能够非常方便的集成到现有系统中去。 1. Compass的framework的系统结构。 感觉Compass的代码的结构简直就是剽窃Hibernate的,可能Compass的最初目的是用来整合Hibernate的, CompassConfiguration conf = new CompassConfiguration().configure().addClass(Author.class); Compass comp |
|
[Hibernate]手动构建Hibernate Annotations Lucene的索引 软件技术
lhwork 发表于 2007/1/22 14:35:27 |
在使用Hibernate的Lucene的时候,是通过事件监听器的方式来更新索引的。但是通常情况下,尤其是测试的时候,通过其他方式插入数据库,比如通过DbUnit。这个时候就需要同步的手动创建索引,我根据Hibernate Lucene的源代码,自己写了一个简单的程序。
原理很简单:先删除所有的索引,然后再添加。
我是对User这个实体进行索引的。
private static void remove(DocumentBuilder builder, Serializable id) { Term term = builder.getTerm( id ); try { IndexReader reader = IndexReader.open( builder.getFile() ); reader.delete( term ); reader.clo |
|
[Hibernate]Hibernate Annotations Lucene Integration的使用 软件技术
lhwork 发表于 2007/1/22 14:32:19 |
在RDBMS里面做搜索是一件困难的事情。现在的需求是需要对用户的资料进行搜索。用户的资料由多个域组成,其中包含用户的爱好,工作经验等。这些域都是文本,包含大量的信息。
对用户这个实体使用标注@Indexed(index = "users")来指定本实体需要被索引,索引存放的文件夹是users,可以在Hibernate配置文件中使用hibernate.lucene.index_dir来指定默认的索引目录。
Lucene索引的4种类型,分别是Keyword,Text,Unstored,Unindexed。
为Hibernate添加监听器,这样当实体更新之后,索引也会自动更新。
<!-- 插入Lucene事件监听器使得数据库更新时可以自动更新索引 --> <event type="post-commit-update"> <listener class="org.hibernate.lucene.event.LuceneE |
|
[Prototype(Ajax)]Prototype.js学习 软件技术
lhwork 发表于 2007/1/21 17:01:14 |
Prototype.js作为javascript的成功的开源框架,封装了很多好用的功能,虽然官方没提供什么文档,不过在google上一搜,好多相
关的文档,不过在学习使用的过程中还是碰到了一些问题,希望熟悉的朋友能多加指点,对于prototype.js学习我关注这么几点,同时针对每点也讲讲
学习的结果和碰到的问题,^_^ 1、类的创建 prototype.js已经封装好了,这个很简单。
var Person=Class.create();
这样就创建了一个Person类,这个Person类必须提供initialize方法的实现:
Person.prototype={ &nbs |
|
[网站架构]利用集群技术实现Web服务器的负载均衡 软件技术
lhwork 发表于 2007/1/21 15:45:14 |
集群和负载均衡的概念
集群(Cluster)
所谓集群是指一组独立的计算机系统构成的一个松耦合的多处理器系统,它们之间通过网络实现进程间的通信。应用程序可以通过网络共享内存进行消息传送,实现分布式计算机。
负载均衡(Load Balance)
网络的负载均衡是一种动态均衡技术,通过一些工具实时地分析数据包,掌握网络中的数据流量状况,把任务合理均衡地分配出去。这种技术基
于现有网络结构,提供了一种扩展服务器带宽和增加服务器吞吐量的廉价有效的方法,加强了网络数据处理能力,提高了网络的灵活性和可用性。
特点
(1)高可靠性(HA)。利用集群管理软件,当主服务器故障时,备份服务器能够自动接管主服务器的工作,并及时切换过去,以实现 |
|
[网站架构]linux下利用Squid构建高速的Proxy Server(4) 软件技术
lhwork 发表于 2007/1/21 15:43:28 |
5.启动,关闭squid a.将cache目录的所有者更改为squid
CODE:#chown -R squid:squid /Cache1 #chown -R squid:squid /Cache2 b.对cache目录进行初始化
CODE:#/usr/local/squid/sbin/squid -z 2004/11/01 23:06:29| Creating Swap Directories FATAL: Failed to make swap directory /Cache1/00: (13) Permission denied Squid Cache (Version 2.5.STABLE7): Terminated abnor |
|
[网站架构]linux下利用Squid构建高速的Proxy Server(3) 软件技术
lhwork 发表于 2007/1/21 15:42:41 |
# TAG: cache_mgr cache_mgr webmaster@localhost #管理员信箱
# TAG: cache_effective_user cache_effective_user squid #运行squid时的用户 cache_effective_group squid #运行squid时的组
# TAG: visible_hostname visible_hostname ProxyServer #代理服务器名称
# OPTIONS FOR THE CACHE REGISTRATION SERVICE(cache注册服务选项) # -------------- |
|
[网站架构]linux下利用Squid构建高速的Proxy Server(2) 软件技术
lhwork 发表于 2007/1/21 15:42:07 |
# OPTIONS WHICH AFFECT THE CACHE SIZE(定义cache大小的选项) # -----------------------------------------------------------------------------
cache_mem 8 MB #额外使用内存量,可根据你的系统内存在设定,一般为实际内存的1/3
cache_swap_low 90 #最低缓存百分比 cache_swap_high 95 ##最高缓存百分比,就是上面那个额外内存的使用百分比
maximum_object_size 4096 KB #单个文件最大缓存大小,超过这个大小将不缓存
maximum |
|
|