- 浏览: 97527 次
- 性别:
- 来自: 上海
-
最新评论
-
jyjsjd:
请教博主这个ChineseTokenizer()你是怎么写的, ...
使用WVTool进行文本分类 -
superclay:
能不能发个indexwriter indexsearch ...
结合ehcache缓存对lucene使用单例模式搜索 -
strayly:
我采用和ehcache缓存结合使用单例模式
使用ehcache ...
lucene搜索优化(转)
文章列表
public class StringTest {
public static void main(String args[]) {
String s = "hello, this is a test this is a test this is a this is test";
String p = "test";
for(int i = 0; i < s.length(); i ++) {
int at = s.indexOf( ...
lucene能够很方便的实现自定义排序
具体做法就是写一个类实现SortComparatorSource这个接口
在类里返回ScoreDocComparator
实现ScoreDocComparator 的三个方法compare,sortValue,sortType就行了
public class MyComparatorSource implements SortComparatorSource {
private static final long serialVersionUID = 1L;
// 返回ScoreDocCo ...
我采用和ehcache缓存结合使用单例模式 ,其实就是给indexsearcher加了个缓存
使用ehcache在内存中设置一个缓存,时间为10分钟。
当IndexSearcher对象不存在时,创建静态对象同时在缓存中写入一个值,表示对象已经存在了.
搜索时如果缓存过期,则重新创建IndexSearcher
public class MySearcher {
private IndexSearcher searcher = null;
private static MySearcher mySearcher = null;
public static MySearcher ...
1、对于按创建时间的排序可以使用doc.id的方式
new SortField(null, SortField.DOC, reverse)排序方式尽量使用INT类型的字段
也就是按照写入索引的顺序排序
2、对于时间字符串的排序可以转换成整数进行排序
3、去掉不必要的parse
使用TermQuery替换
4、TermQuery和Term可以只保留一个实例
createTerm(text)
5、减少Doc到model的转换
索引出来String到Date的转换多余而且费时
直接使用Doc对象包装成JSONObject
6、MultiFieldQueryParser改成自己用b ...
tomcat设置为3g内存多后不能启动,查了一些资料,没有找到很好的答案,有人建议设置tomcat集群,跑多个tomcat
后来欢成了jrockit虚拟机,可以启动了
据说 jrockit速度比sun的快很多,不过现在还没感觉出来,还在进一步测试中。
bobo-browse 是一用java写的lucene扩展组件,通过它可以很方便在lucene上实现分组统计功能。
可以从http://code.google.com/p/bobo-browse/上下载和查看相关文档。
下面介绍如何使用:
第一步:设置相关配置文件
bobo-browse 使用了spring,这里主要配置bobo.spring和field.xml两个文件。可以从他的源码例子中找到这两个文件,参考它做相应的修改。
同时这两个文件要放在和索引文件的同一目录下。
第二步:搜索实现
字段配置写好之后,就可以在搜索的java文件中加上一些代码就可以得到统计结果了。
...
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Calendar;
import java.util.List;
import edu.udo.cs.wvtool.config.WVTConfiguration;
import edu.udo. ...