- 浏览: 272433 次
- 性别:
- 来自: 上海
最新评论
-
csmnjk:
thanks a lot!
Lucene的评分(score)机制的简单解释 -
helloworlda:
...
在Spring STS中使用Maven对不同的部署环境打包 -
u010223750:
我是lucene的新手,楼主分析的好,get到
Lucene的评分(score)机制的简单解释 -
java_web_hack1:
bundle exec 可以干啥,求举例
ruby bundler使用技巧 -
poterban:
请问具体怎么修改呢?
JIRA发送邮件的问题
文章列表
我认为这篇文章作为入门,对Lucene的总结比较好:
1 lucene简介
1.1 什么是lucene
Lucene是一个全文搜索框架,而不是应用产品。因此它并不像www.baidu.com 或者google Desktop那么拿来就能用,它只是提供了一种工具让你能实现这些产品。
1.2 lucene能做什么
要回答这个问题,先要了解lucene的本质。实际上lucene的功能很单一,说到底,就是你给它若干个字符串,然后它为你提供一个全文搜索服务,告诉你你要搜索的关键词出现在哪里。知道了这个本质,你就可以发挥想象做任何符合这个条件的事情了。你可以把站内新闻都索引了,做个资料库;你可以把一个数 ...
- 2008-04-17 18:57
- 浏览 2631
- 评论(0)
通过Searcher.explain(Query query, int doc)方法可以查看某个文档的得分的具体构成。
在Lucene中score简单说是由 tf * idf * boost * lengthNorm计算得出的。
tf:是查询的词在文档中出现的次数的平方根
idf:表示反转文档频率,观察了一下所有的文档都一样,所以那就没什么用处,不会起什么决定作用。
boost:激励因子,可以通过setBoost方法设置,需要说明的通过field和doc都可以设置,所设置的值会同时起作用
lengthNorm:是由搜索的field的长度决定了,越长文档的分值越低。
所以我们编程能够控制sc ...
搜索
1、对于按创建时间的排序可以使用doc.id的方式
new SortField(null, SortField.DOC, reverse)排序方式尽量使用INT类型的字段
也就是按照写入索引的顺序排序
2、对于时间字符串的排序可以转换成整数进行排序
3、去掉不必要的parse
使用TermQuery替换
4、TermQuery和Term可以只保留一个实例
createTerm(text)
5、减少Doc到model的转换
索引出来String到Date的转换多余而且费 ...
- 2008-03-21 18:50
- 浏览 4286
- 评论(0)
索引
1、t.termText()替换为new String(t.termBuffer(),0,t.termLength())
2、StringReader 和TokenStream对象都需要close
3、索引时Document只用一个、Field只用几个
一个Document对象对应多个Field实例
Field有新的setValue方法,动态改变属性
不能只有一个Field实例
例如:idField, bodyField
必须等Document都到索引中之后,才可以重新设置值
...
在eclipse里提交和更新文件是抱错。
Attempted to lock an already-locked dir
svn: Working copy 'F:\workspace\WebFrame\WebRoot\attach\prodrelation' locked
执行“清除”操作后,问题解决了。
很多操作,例如中断提交,都会进入这种工作拷贝的锁定状态。
- 2008-03-06 21:58
- 浏览 6343
- 评论(3)
主要是修改了一些2.3.0版本的Bug,特别是当autoCommit=false的情况下以及多线程添加Document,有些字段打开了term-vector有些没有打都会对索引数据造成破坏
autoCommit 选项是从2.2.0版本就添加了,默认是true,我对这个参数还不是很理解,都是用的默认值true。所以没有碰到问题。
2.3.1版本没有包含任何新的功能,索引文件的格式也没有变化,完全兼容2.3.0版本。
官方鼓励所有使用2.3.0版本的应用尽快升级到2.3.1版本。
Bug fixes
1. LUCENE-1168: Fixed corruption cases ...
AXIS
问题
少了一个activation.jar
因为类的注释少了一个符号,导致无法编译.jws
服务开发步骤
开发服务代码
编写部署描述
客户端开发
转到AXIS目录下的WEB-INF子目录。确保Tomcat服务已经处于启动状态,键入命令 :
Java -Djava.ext.dirs=lib org.apache.axis.wsdl.WSDL2Java http://localhost:8080/axis/Calculator.jws?wsdl
...
- 2008-02-27 12:07
- 浏览 3107
- 评论(0)
Lucene2.2的新变化
- 博客分类:
- Lucene
发现2.1里面的新变化很多都用到了,而且帮助很大。所以决定把2.2的新内容消化一下
1、在InderWriter的构造参数中增加了一个可选的boolean的参数autoCommit。默认是true,当设置成false的时候,索引的变化知道writer被close掉之后,才会提交变化。
还有一个可选的删除策略的参数,应该是用来控制删除索引后是否生效。
2、很多public的方法都会抛出:AlreadyClosedException
3、TokenStream里面增加了reset()方法,允许提供自定义的实现。
未完待续,还有很多需要进一步消化。
- 2008-01-22 20:23
- 浏览 3791
- 评论(1)
1.9 到 2.0 的改动不是很多,主要是废弃了一些 API , 2.0 起了一个过渡的作用。
2.1 是在 2.0 基础上做了很多的改进,提升了性能,修复了一些 Bug 等。
Lucene2.1 在索引的格式上做了一些改进,所以旧版本的 Lucene 是无法访问 2.1 版的索引文件。但是 2.1 版本的可以读写旧版本的索引文件。保持向下的兼容性。这点需要我们在使用时注意。
下面简单的列出一些新的特性:
1. 's' 和 't' 从默认的 stopwords 中移掉了。但是依然还有 'a' 也可以会有同样的问题,所以分词需要针对自己的应用进行自定义 ...
- 2008-01-22 20:08
- 浏览 3421
- 评论(0)
整个升级的过程还是非常简单的。
只是NIO方面的配置有些不同。
1、对应修改/bin/catalina.sh
增加 JAVA_OPTS 的配置
2、修改/conf/server.xml中的Connector的配置
8080端口修改为:
<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" connectionTimeout="30000"
accep ...
并发量 LOAD MEM IO 吞吐量 平均响应时间 偏离
TOMCAT5 20 3-4 10.6 52-60 874 1335 257
TOMCAT6 20 2.4 14.6 21 906 1305 205
NIO 20 2.4 12.3 21 855 1304 330
TOMCAT5 40 4-5 19.2 66 908 2570 507
TOMCAT6 40 2.25 12.3 41 875 2622 618
NIO 40 2.5 16.7 42 895 2567 592
结论:
在同样的负载下,tomcat6比tom ...
一、数字类型
所谓的“数字类”,就是指 DECIMAL 和 NUMERIC,它们是同一种类型。它严格的说不是一种数字类型,因为他们实际上是将数字以字符串形式保存的;他的值的每一位 (包括小数点) 占一个字节的存储空间,因此这种类型耗费空间比较大。但是它的一个突出的优点是小数的位数固定,在运算中不会“失真”,所以比较适合用于“价格”、“金额”这样对精度要求不高但准确度要求非常高的字段。
小数类,即浮点数类型,根据精度的不同,有 FLOAT 和 DOUBLE 两种。它们的优势是精确度,FLOAT 可以表示绝对值非常小、小到约 1.17E-38 (0.000...0117,小数点后面有 3 ...
- 2007-12-13 19:00
- 浏览 3802
- 评论(0)
try {
// Open the ZIP file
String inFilename = "infile.zip";
ZipInputStream in = new ZipInputStream(new FileInputStream(inFilename));
// Get the first entry
ZipEntry entry = in.getNextEntry();
// Open the output file
String outFilename = "o";
OutputStream out = new Fil ...
- 2007-12-12 15:25
- 浏览 3594
- 评论(1)
追求简单实用的方法
// These are the files to include in the ZIP file
String[] filenames = new String[]{"filename1", "filename2"};
// Create a buffer for reading the files
byte[] buf = new byte[1024];
try {
// Create the ZIP file
String outFilename = "outfile.zip";
Zip ...
- 2007-12-12 15:23
- 浏览 5310
- 评论(0)
18.1. Introduction
介绍
Spring provides a higher level of abstraction for sending electronic mail which shields the user from the specifics of underlying mailing system and is responsible for a low level resource handling on behalf of the client.
Spring 支持一个更高层的抽象用来发送电子邮件,它隐藏底层邮件系统的细节并且代表客户端对低级别的控制 。
...
- 2007-12-12 12:12
- 浏览 2723
- 评论(1)