随笔分类 -  Lucene JAVA心得

摘要:    Lucene有一个问题一直困扰着我, 就是如何在索引文件的时候节省空间, 合理的分配不大也不小的空间有助于在提高搜索速度的同时也能够监测内存的使用情况, 在内存使用到达某个阈值的时候可以触发合并的操作     之前在写一个小程序, 来实现类似于Lucene索引文件的时候, 我是用c++写的, 没有使用内存池, 需要的时候就找操作... 阅读全文
posted @ 2010-01-26 09:00 LeftNotEasy 阅读(3500) 评论(2) 推荐(1) 编辑
摘要:TermsHashPerField 类一、类功能概述:负责词项的索引过程,每个字段有相应的一个TermsHashPerField;当索引某字段词项时,使用对应TermsHashPerField的add()函数完成(一个)词项索引过程,并将索引内容(词项字符串/指针信息/位置信息等)存储于内存缓冲中二、类成员说明:2.1 final int streamCount;如果需要记录词频和位置,此值为2(... 阅读全文
posted @ 2010-01-25 16:07 LeftNotEasy 阅读(1358) 评论(0) 推荐(0) 编辑
摘要:     如果你看的Lucene相关的书是很老版本的, 比如说2.4或者更早, 那么对于这个版本中的Analyzer可能就不那么容易接受了, 我也是看的<lucene分析与应用>这本书, 比较古老的版本.      今天读了一下源代码, 大概说说心得, 我从SimpleAnalyzer说起.  ... 阅读全文
posted @ 2010-01-17 20:58 LeftNotEasy 阅读(6324) 评论(0) 推荐(0) 编辑
摘要:    以前版本的Lucene是用TokenStream.next()来遍历TokenStream的内容, 目前的版本稍微修改了一下, 使用下面的的一段程序可以遍历TokenStream的内容 private static void displayTokenStream(TokenStream ts) throws IOException { TermAttribut... 阅读全文
posted @ 2010-01-14 15:17 LeftNotEasy 阅读(5290) 评论(1) 推荐(1) 编辑
摘要:一. 我本来的程序     其实我本来的程序挺简单, 完全修改自Demo里面的SearchFiles和IndexFiles. 唯一不同的是引用了SmartCN的分词器.     我把修改那一点的代码贴出来.     IndexhChinese.java: Date start = new Date();... 阅读全文
posted @ 2010-01-14 15:14 LeftNotEasy 阅读(5746) 评论(4) 推荐(0) 编辑
摘要:    之前我谈到了把Term加入到Posting表中的过程, 接下来我将大致说说把Posting表写入到文件中的过程.     这些内容我看得不算仔细, 之后有时间可以详细的扩展一下, 先留个脚印在这儿 :-D     之前的准备:     这六步就是写入前的前期准备工作,... 阅读全文
posted @ 2010-01-10 13:05 LeftNotEasy 阅读(951) 评论(0) 推荐(0) 编辑
摘要:一. TermHashPerField.add()方法     这一章继续上面的内容, 上一章谈到TermHashPerField.add()方法就是把一个Term加入到posting表的过程, 那么下面我将从算法的角度来分析这个add()方法: final char[] tokenText = termAtt.termBuffer();; final int to... 阅读全文
posted @ 2010-01-09 22:27 LeftNotEasy 阅读(1243) 评论(0) 推荐(0) 编辑
摘要:一. consumer的来源     接着上一小节的内容, 还是从这一段程序(位于DocumentWriter.updateDocument(Document, Analyzer, Term) 中继续. try { // This call is not synchronized and does all the // work final DocWriter pe... 阅读全文
posted @ 2010-01-09 16:49 LeftNotEasy 阅读(2563) 评论(0) 推荐(1) 编辑
摘要:这一小结的内容我将大概讲讲IndexFiles的一个过程. 为了方便查看, 还是把IndexFile.java的源代码放在前面. 1: public class IndexFiles { 2: 3: private IndexFiles() {} 4: 5: static final File INDEX_DIR = new File("index"); 6: 7: /** Index all t... 阅读全文
posted @ 2010-01-09 12:57 LeftNotEasy 阅读(3658) 评论(0) 推荐(0) 编辑