要想使用Lucene检索office文档(word、excel、ppt等)、PDF、HTML文档,通常的处理策略是先从这些文档中提取出纯文本,然后再进行相关索引处理等。
一、从office中提取纯文本
从office文件中提取纯文本,可以使用POI(http://poi.apache.org/),最新版本为3.8。从office文件中提取纯文本方法很简单。只需要两行代码即可。
POITextExtractor extractor = ExtractorFactory.createExtractor(is);
String c...
Liferay6.1简单增删改查示例
(建立了一个讨论Liferay的群:6537876,探讨学习Liferay的二次开发、Portal技术、企业信息门户(EIP)等相关内容,欢迎加入。)
写了一个最简单的portlet的增删改查的示例。下载地址:点击这里。
portlet的创建,可以参考:
Liferay 6.1开发学习(二):创建一个Portlet工程
和
Liferay 6.1开发学习(三):Portlet简述
ServiceBuilder的使用,可以参考:Liferay 6.1开发学习(四):Service Builder
说明...
Android刷机基础知识
周末的时候将自己的Atrix 4G刷到了4.1.2的系统,用起来很流畅,比之前的2.3用着舒服多了。记录一下Android刷机的一些基础知识。
1、基带
基带是手机中处理信号模块的驱动程序,也就是调整解调器的驱动程序。不同的版本的手机针对不同国家的运营商有一定的优化,通过刷基带可以调整手机的信号强弱。
2、底包
底包算是MOTO手机的专有东西,可以将此看作一个手机系统的骨架。通过MOTO专用的刷机工具RSD Lite刷...
FastJSON使用技巧两则
FastJSON是阿里的温少写的,详细介绍请看:http://code.alibabatech.com/wiki/pages/viewpage.action?pageId=2424946。具有高性能、支持标准、依赖少的方便之处。
1、字段名称映射
比如现在JavaBean中有一个字段名称为parentId,想将此字段转换为pId,则可以使用如下代码。
NameFilter filter = new NameFilter() {
public String process(Object source, String name, Object value) {
if (name.equa...
Liferay 6.1开发学习(十二):文件上传处理
Liferay中提供了完善的文件处理,从liferay 6.1开始在文件的处理方面,不再区分文档和图片,统一为文件媒体库。在普通的portlet插件工程中,如果想将文件上传到Liferay的文档库中,大的阶段可以分为两个流程:一、在portlet中将上传的文件取到,二调用Liferay的API将文件上传到文档库中。
(注:这里的文件上传只讲服务端的处理,至于客户端也就是浏览器使用普通的表单文件上传,还是使用swffileupload或者a...
Liferay 6.1开发学习(十一):调度器-定时任务
在liferay的开发中经常需要执行一些定时调度任务,一般情况下在普通的web开发中我们使用quartz来做调度,但是在Liferay中已经对于调度做了一个封装,方便我们在开发中执行调度任务,liferay中封装了两种方法方便我们做调度扩展。
一、基于Portlet的调度
如某个的调度是在某个portlet中使用的,则可以使用一面的方法:
1、 编写一个类,实现接口:com.liferay.portal.kernel.messageing.MessageListener。...
Liferay 6.1开发学习(十):在Liferay中使用Ajax
在现在的Web开发中,Ajax的使用非常频繁,合理的使用Ajax也是提高用户体验的一个重要手段,在Liferay中使用Ajax其实非常方便,但是和普通的web程序稍有差异。
一、简单示例
客户端代码编写
1、在Liferay中创建一个简单的Portlet页面,可以取名为ajaxPortlet,具体的创建过程可以参考;http://www.huqiwen.com/2012/09/03/liferay-6-1-development-study-3-portlet-explicate/
2、在liferay中ajax的请求地址...
Liferay屏幕名称的验证条件
以Liferay 6.1.1 CE版为说明。默认验证条件如下,并按照下列顺序验证
1、不能包含等于cyrus、postfix,并且不能包含_、/两个符合。代码类DefaultScreenNameValidator中的限制。此限制可以通过使用hook工程来写一个NameValidator类进行限制某些特殊字符,如果对DefaultScreenNameValidator里面的定义的条件都不需要,并且没有其他特殊字符需要过虑,可以简单的修改portal.properties属性。
默认如下:
users...
Liferay 6.1开发学习(九):Hook开发简介
一、Hook是什么
hook是什么在http://www.huqiwen.com/2012/09/01/liferay-6-1-development-study-2-create-portlet-project/里面有一个大概的介绍。Liferay提供hook的目的是减少二次开发的代码与liferay核心工程的耦合,通过hook我们主要可以主要做以下六件事情:
1、覆盖事件处理程序:如程序启动事件(application.startup.events)、登录注销事件(login.events.pre、login.events.post)、session的创...
Liferay 6.1开发学习(八):主题开发
Liferay可以为不同的页面、社区、组织等提供不同的主题。方便实现用户的个性化配置,同时Liferay提供的IDE方便开发人员进行主题的个性化开发。
Liferay主题的创建
1、在Eclipse的工具条上,点击New Liferay Project,在plugin type里面选择Theme,点击finish。则完成了theme工程的建立。
2、Liferay的主题开发是在他提供的一个模板的基础上进行修改。我们将个性化的内容放置于_diffs目录下面,在deploy的时...