最新的Lucene2.3.2发布了,主要修改了一些创建和修改索引时候的Bug。 ======================= Release 2.3.2 2008-05-05 ======================= Bug fixes 1. LUCENE-1191: On hitting OutOfMemoryError in any index-modifying methods in IndexWriter, do not commit any further changes to the index to prevent risk of possible ...
我认为这篇文章作为入门,对Lucene的总结比较好: 1 lucene简介 1.1 什么是lucene Lucene是一个全文搜索框架,而不是应用产品。因此它并不像www.baidu.com 或者google Desktop那么拿来就能用,它只是提供了一种工具让你能实现这些产品。 1.2 lucene能做什么 要回答这个问题,先要了解lucene的本质。实际上lucene的功能很单一,说到底,就是你给它若干个字符串,然后它为你提供一个全文搜索服务,告诉你你要搜索的关键词出现在哪里。知道了这个本质,你就可以发挥想象做任何符合这个条件的事情了。你可以把站内新闻都索引了,做个资料库;你可以把一个 ...
通过Searcher.explain(Query query, int doc)方法可以查看某个文档的得分的具体构成。 在Lucene中score简单说是由 tf * idf * boost * lengthNorm计算得出的。 tf:是查询的词在文档中出现的次数的平方根 idf:表示反转文档频率,观察了一下所有的文档都一样,所以那就没什么用处,不会起什么决定作用。 boost:激励因子,可以通过setBoost方法设置,需要说明的通过field和doc都可以设置,所设置的值会同时起作用 lengthNorm:是由搜索的field的长度决定了,越长文档的分值越低。 所以我们编程能够控制s ...
2008-03-21

Lucene搜索优化技巧 - 搜索篇

关键字: lucene
搜索 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

Lucene搜索优化技巧 - 索引篇

关键字: lucene
索引 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 执行“清除”操作后,问题解决了。 很多操作,例如中断提交,都会进入这种工作拷贝的锁定状态。
  • 21:58
  • 浏览 (1541)
  • 评论 (0)
2008-02-27

Lucene2.3.1发布了

关键字: lucene
主要是修改了一些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 ...
  • 12:07
  • 浏览 (1476)
  • 评论 (0)
发现2.1里面的新变化很多都用到了,而且帮助很大。所以决定把2.2的新内容消化一下 1、在InderWriter的构造参数中增加了一个可选的boolean的参数autoCommit。默认是true,当设置成false的时候,索引的变化知道writer被close掉之后,才会提交变化。 还有一个可选的删除策略的参数,应该是用来控制删除索引后是否生效。 2、很多public的方法都会抛出:AlreadyClosedException 3、TokenStream里面增加了reset()方法,允许提供自定义的实现。 未完待续,还有很多需要进一步消化。
1.9 到 2.0 的改动不是很多,主要是废弃了一些 API , 2.0 起了一个过渡的作用。 2.1 是在 2.0 基础上做了很多的改进,提升了性能,修复了一些 Bug 等。 Lucene2.1 在索引的格式上做了一些改进,所以旧版本的 Lucene 是无法访问 2.1 版的索引文件。但是 2.1 版本的可以读写旧版本的索引文件。保持向下的兼容性。这点需要我们在使用时注意。 下面简单的列出一些新的特性: 1. 's' 和 't' 从默认的 stopwords 中移掉了。但是依然还有 'a' 也可以会有同样的问题,所以分词需要针对自己的应用进行自定 ...
  • 20:08
  • 浏览 (1695)
  • 评论 (0)
grantbb
搜索本博客
存档
最新评论