Lucene
读程序的手艺人
专研于大数据处理
展开
-
用Lucene构建实时索引的文档更新问题
<br />在讨论了使用Lucene内存索引和硬盘索引构建实时索引的问题。<br />然而有的读者提到,如果涉及到文档的删除及更新,那么如何构建实时的索引呢?本节来讨论这个问题。1、Lucene删除文档的几种方式IndexReader.deleteDocument(int docID)是用 IndexReader 按文档号删除。 IndexReader.deleteDocuments(Term term)是用 IndexReader 删除包含此词(Term)的文档。 IndexWriter.del转载 2011-06-02 10:18:00 · 1336 阅读 · 0 评论 -
从概念理解Lucene的Index(索引)文档模型
<br />Lucene主要有两种文档模型:Document和Field,一个Document可能包含若干个Field。<br />每一个Field有不同的策略:<br />1.被索引 or not,将该字段(Field)经过分析(Analyisi)后,加入索引中,并不是原文。<br />2.如果被索引,可选择是否保存“term vector”(向量),用于相似检索。<br />3.可选择是否存储(store),将原文直接拷贝,不做索引,用于检索后的取出。<br />Lucene中的文档模型类似于数原创 2011-06-02 10:14:00 · 1437 阅读 · 0 评论 -
用Lucene构建实时的索引
<br />由于前一章所述的Lucene的事务性,使得Lucene可以增量的添加一个段,我们知道,倒排索引是有一定的格式的,而这个格式一旦写入是非常难以改变的,那么如何能够增量建索引呢?Lucene使用段这个概念解决了这个问题,对于每个已经生成的段,其倒排索引结构不会再改变,而增量添加的文档添加到新的段中,段之间在一定的时刻进行合并,从而形成新的倒排索引结构。<br />然而也正因为Lucene的事务性,使得Lucene的索引不够实时,如果想Lucene实时,则必须新添加的文档后IndexWri转载 2011-06-02 10:16:00 · 859 阅读 · 0 评论