JAVA—咖啡馆

——欢迎访问rogerfan的博客,常来《JAVA——咖啡馆》坐坐,喝杯浓香的咖啡,彼此探讨一下JAVA技术,交流工作经验,分享JAVA带来的快乐!本网站部分转载文章,如果有版权问题请与我联系。

BlogJava 首页 新随笔 联系 聚合 管理
  447 Posts :: 145 Stories :: 368 Comments :: 0 Trackbacks

06 2010 档案

     摘要: 1.ibatis中使用缓存
首先设置SqlMapConfig.xml中节点的属性cacheModelsEnabled="true"

然后在具体sqlmap文件中书写

Xml代码







posted @ 2010-06-30 16:58 rogerfan 阅读(182) | 评论 (0)  编辑

     摘要: 最近开始重构公司一套手机论坛系统(为什么我不说wap论坛,是因为需要针对不同的手机浏览器,实现自动适配成wap、html以及wap2.0版本的页面)。原系统存在架构层次不清晰(表现层全jsp,直接配合数据层获取数据),访问速度慢的问题。其使用的OR映射框架是Hibernate,鉴于Hibernate的一些不满足需要情况下,我们在重构的时候换成了iBatis,为了加快访问速度,采用了iBatis的缓存技术。

iBatis的缓存配置比较简单易懂,以我使用的iBatis2.3为例,做以下配置即可实现对某些查询进行缓存:

1、在sqlMap文件中加入cacheModel的配置:





阅读全文
posted @ 2010-06-29 21:55 rogerfan 阅读(903) | 评论 (0)  编辑

     摘要: 1.1. 设置结果页面路径
默认所有的结果页面都存储在WEB-INF/content下,你可以通过设置struts.convention.result.path这个属性的值来改变到其他路径。如:

Xml代码:






则将路径配置到了WEB-INF/page 下。

1.2. 设置Convention搜索包
默认包路径包含action,actions,struts,struts2的所有包都会被struts作为含有Action类的路径来搜索。你可以通过设置struts.convention.package.locators属性来修改这个配置。如:


  阅读全文
posted @ 2010-06-21 10:16 rogerfan 阅读(644) | 评论 (0)  编辑

posted @ 2010-06-21 10:15 rogerfan 阅读(385) | 评论 (0)  编辑

posted @ 2010-06-21 10:13 rogerfan 阅读(316) | 评论 (0)  编辑

posted @ 2010-06-21 10:11 rogerfan 阅读(276) | 评论 (0)  编辑

     摘要: 支持英文、数字、中文(简体)混合分词
常用的数量和人名的匹配
超过22万词的词库整理
实现正向最大匹配算法

//采用正向最大匹配的中文分词算法,相当于分词粒度等于0
MMAnalyzer analyzer = new MMAnalyzer();

//参数为分词粒度:当字数等于或超过该参数,且能成词,该词就被切分出来
MMAnalyzer analyzer = new MMAnalyzer(2);


//增加一个新词典,采用每行一个词的读取方式
MMAnalyzer.addDictionary(reader);

//增加一个新词
MMAnalyzer.addWord(newWord);
  阅读全文
posted @ 2010-06-21 10:10 rogerfan 阅读(2988) | 评论 (0)  编辑

     摘要: 1. 禁止右键点击
view plaincopy to clipboardprint?

1. $(document).ready(function(){

2. $(document).bind("contextmenu",function(e){

3. return false;

4. });

5. });


2. 隐藏搜索文本框文字view plaincopy to clipboardprint?

1. $(document).ready(function() {

2. $("input.text1").val("Enter your search text here");

3. textFill($('input.text1'));   阅读全文
posted @ 2010-06-21 10:09 rogerfan 阅读(241) | 评论 (0)  编辑

     摘要: 1. 各种Query
1.1. 概述
query.toString()查看原子查询

1.2. 使用特定的分析器搜索
IndexSearcher searcher = new IndexSearcher(path );

Hits hits = null;

Query query = null;

QueryParser parser =new QueryParser("contents", new StandardAnalyzer());

query =parser.parse("11 a and hello");

hits=searcher.search(query); //查找 name:11 name:hello 共1个结果

System.out.println("查找 "+query.toString()+" 共" + hits.length() + "个结果");
  阅读全文
posted @ 2010-06-21 10:07 rogerfan 阅读(312) | 评论 (0)  编辑

     摘要: 1. 排序
1.1. Sort类
public Sort()

public Sort(String field)

public Sort(String field,Boolean reverse) //默认为false,降序排序

public Sort(String[] fields)

public Sort(SortField field)

public Sort(SortField[] fields)

Sort sort=new Sort(“bookname”);按照“bookname“这个Field值进行降序排序

Sort sort=new Sort(“bookname”,true) //升序排序

Sort sort=new Sort(new String[]{“bookNumber”,”bookname”,”publishdate”});按照三个Field进行排序,但无法指定升序排序,所以用SortField <  阅读全文
posted @ 2010-06-21 10:06 rogerfan 阅读(581) | 评论 (0)  编辑

     摘要: 1. lucene中主要的类
1.1. Document文档类
1.1.1.常用方法
方法
描述

void add(Field field)
往Document对象中添加字段

void removeField(String name)
删除字段。若多个字段以同一个字段名存在,则删除首先添加的字段;若不存在,则Document保持不变

void removeFields(String name)
删除所有字段。若字段不存在,则Document保持不变

Field getField(String name)
若多个字段以同一个字段名存在,则返回首先添加的字段;若字段不存在,则Document保持不变

Enumeration fields()
返回Document对象的所有字段,以枚举类型返回

Field [] getFields(String name)
根据名称得到一个F  阅读全文
posted @ 2010-06-21 10:05 rogerfan 阅读(312) | 评论 (0)  编辑

     摘要: 1. 概述
Lucene是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎。Lucene以其方便使用、快速实施以及灵活性受到广泛的关注。它可以方便地嵌入到各种应用中实现针对应用的全文索引、检索功能,本总结使用lucene--2.3.2。

2. lucene 的包结构
1、org.apache.lucene.analysis对需要建立索引的文本进行分词、过滤等操作, 语言分析器,主要用于的切词Analyzer是一个抽象类,管理对文本内容的切分词规则。

2、org.apache.lucene.analysis.standard是标准分析器

3、org.apache.lucene.document提供对Document和Field的各种操作的支持。索引存储时的文档结构管理,类似于关系型数据库的表结构。Document相对于关系型数据库的记录对象,Field主要负责字段的管理。

4、org.apache.lucene.index是最重要的包,用于向Lucene提供建立索引时各种操作的支持。  阅读全文
posted @ 2010-06-21 10:04 rogerfan 阅读(199) | 评论 (0)  编辑

     摘要: 4 索引是如何创建的
为了使用Lucene来索引数据,首先你比把它转换成一个纯文本(plain-text)tokens的数据流(stream),并通过它创建出Document对象,其包含的Fields成员容纳这些文本数据。一旦你准备好些Document对象,你就可以调用IndexWriter类的addDocument(Document)方法来传递这些对象到Lucene并写入索引中。当你做这些的时候,Lucene首先分析(analyzer)这些数据来使得它们更适合索引。详见《Lucene In Action》
  阅读全文
posted @ 2010-06-21 09:58 rogerfan 阅读(248) | 评论 (0)  编辑

     摘要: 1 什么是索引
为了使用Lucene来索引数据,首先你得把它转换成一个纯文本(plain-text)tokens的数据流(stream),并通过它创建出Document对象,其包含的Fields成员容纳这些文本数据。一旦你准备好些Document对象,你就可以调用IndexWriter类的addDocument(Document)方法来传递这些对象到Lucene并写入索引中。当你做这些的时候,Lucene首先分析(analyzer)这些数据来使得它们更适合索引。详见《Lucene In Action》

下面先了解一下索引结构的一些术语。

1.1 索引数据结构介绍
1.1.1 术语定义
Lucene中基本的概念(fundamental concepts)是index、Document、Field和term。

ú 一条索引(index)包含(contains)了一连串(a sequence of)文档(documents)。

ú   阅读全文
posted @ 2010-06-21 09:58 rogerfan 阅读(276) | 评论 (0)  编辑

     摘要: 3 索引类关系图
下面逐个介绍与建立索引有关的一些类及它们的关系。



3.1 org.apache.lucene.store.IndexWriter
一个IndexWriter对象只创建并维护一个索引。IndexWriter通过指定存放的目录(Directory)以及文档分析器(Analyzer)来构建,direcotry代表索引存储(resides)在哪里;analyzer表示如何来分析文档的内容;similarity用来规格化(normalize)文档,给文档算分(scoring);IndexWriter类里还有一些SegmentInfos对象用于存储索引片段信息,以及发生故障回滚等。以下是它们的类图:
  阅读全文
posted @ 2010-06-21 09:56 rogerfan 阅读(219) | 评论 (0)  编辑

     摘要: 1 Lucene是什么
Apache Lucene是一个高性能(high-performance)的全能的全文检索(full-featured text search engine)的搜索引擎框架库,完全(entirely)使用Java开发。它是一种技术(technology),适合于(suitable for)几乎(nearly)任何一种需要全文检索(full-text search)的应用,特别是跨平台(cross-platform)的应用。

Lucene 通过一些简单的接口(simple API)提供了强大的特征(powerful features):

可扩展的高性能的索引能力(Scalable, High-Performance Indexing)

ü 超过20M/分钟的处理能力(Pentium M 1.5GHz)

ü 很少的RAM内存需求,只需要1MB heap

ü 增量索引(incremental indexi  阅读全文
posted @ 2010-06-21 09:53 rogerfan 阅读(197) | 评论 (0)  编辑