lucene
iteye_18210
这个作者很懒,什么都没留下…
展开
-
RAMDirectory中的内容转到FSDirectory
import java.io.IOException; import org.apache.lucene.analysis.standard.StandardAnalyzer;import org.apache.lucene.document.Document;import org.apache.lucene.document.Field;import org.apach...原创 2011-07-04 15:14:02 · 146 阅读 · 0 评论 -
如何提高和优化Lucene索引速度
• 确认你在使用最新的Lucene版本。• 尽量使用本地文件系统远程文件系统一般来说都会降低索引速度。如果索引必须分布在远程服务器,请尝试先在本地生成索引,然后分发到远程服务器上。 • 使用更快的硬件设备,特别是更快的IO设备• 在索引期间复用单一的IndexWriter实例• 使用按照内存消耗Flush代替根据文档数量Flush在L...原创 2011-09-06 17:06:20 · 62 阅读 · 0 评论 -
lucene使用与优化
1 lucene简介1.1 什么是luceneLucene是一个全文搜索框架,而不是应用产品。因此它并不像www.baidu.com 或者google Desktop那么拿来就能用,它只是提供了一种工具让你能实现这些产品。1.2 lucene能做什么要回答这个问题,先要了解lucene的本质。实际上lucene的功能很单一,说到底,就是你给它若干个字符串,然后它为你提供一个全文...原创 2011-09-06 16:53:20 · 62 阅读 · 0 评论 -
TermEnum
使用Lucene的API遍历Lucene索引一般使用Lucene的人都很少需要对索引进行遍历之类的操作,因为使用Lucene一般都不会对其索引文件产生太大兴趣,只注重将Lucene作为一个全文检索工具来使用而已,并不在意其内部实现和结构。但是很多学习Lucene的朋友都希望可以看见完整的Lucene索引内容,至少包含索引词、索引词出现的文档、索引词在文档中的位置(这里指的位置并不是词在原...原创 2011-08-27 10:45:14 · 91 阅读 · 0 评论 -
Lucene中创建索引的效率和删除索引的实现
越来越多的人利用开源组件 Lucene来开发自己的搜索引擎。在数据量不大的情况下,我们不会太关注创建索引的效率;但是,但数据达到一定的数量是,我们就不得不考虑如何提高创建索引的性能,以缩短索引创建的时间。我们是用Lucene中提供的类IndexWriter来创建索引的,所以我们不妨先看一看IndexWriter类中关系到索引创建效率的几个方法。一、SetMergeFactor(合并...原创 2011-07-07 11:56:35 · 73 阅读 · 0 评论 -
读lucene3.0.3源码:Directory
本来打算自己总结的,看见有篇现成的,转载如下: 首先我们看构造函数中的第一个类Directory 类。根据这个类的英文,我们能得出这个类就是关于目录操作的。Directory 是一个抽象类。其有4个子类,分别是:DbDirectory, FSDirectory, JEDirectory, RAMDirectory首先我们看看Directory 的类public abstract...原创 2011-07-06 10:14:14 · 54 阅读 · 0 评论 -
File的getPath getAbsolutePath和getCanonicalPath的不同
转自:http://www.blogjava.net/dreamstone/archive/2007/08/08/134968.htmlfile的这几个取得path的方法各有不同,下边说说详细的区别概念上的区别:(内容来自jdk,个人感觉这个描述信息,只能让明白的人明白,不明白的人看起来还是有点难度(特别试中文版,英文版稍好些)所以在概念之后我会举例说明。如果感觉看概念很累就跳过直接看例子...原创 2011-07-06 10:03:12 · 56 阅读 · 0 评论 -
lucene性能优化
优化搜索性能 虽然建立索引的操作非常耗时,但是那毕竟只在最初创建时才需要,平时只是少量的维护操作,更何况这些可以放到一个后台进程处理,并不影响用户搜索。我们创建索引的目的就是给用户搜索,所以搜索的性能才是我们最关心的。下面就来探讨一下如何提高搜索性能。 1 将索引放入内存 这是一个最直观的想法,因为内存比磁盘快很多。Lucene提供了RAMDirectory可以在内存中容纳索引: Direct...原创 2011-07-06 09:09:37 · 93 阅读 · 0 评论 -
lucene中FSDirectory、RAMDirectory的用法
package com.ljq.directory;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.InputStreamReader;import org.apache.lucene.analysis.Analyzer;import org.apache...原创 2011-07-06 09:03:08 · 200 阅读 · 0 评论 -
lucene中的Token, TokenStream, Tokenizer, Analyzer
Token: 如果一个字段被token化,这表示它经过了一个可将内容转化为tokens串的分析程序。 Token是建立索引的基本单位,表示每个被编入索引的字符。 在token化的过程中,分析程序会在使用任何转换逻辑(例如去掉 "a” 或 "the" 这类停用词,执行词干搜寻,将无大小写区分的所有文字转换成小写等)的同时,抽取应被编入索引的文本内容。由于和字段相关的内容减少到只剩核心元素,因此,索引...原创 2011-07-06 08:56:02 · 145 阅读 · 0 评论 -
较为特殊的RAMDirectory类
RAMDirectory类是与内存目录相关的,它和FSDirectory有很大地不同,这主要从它的构造函数来看:public RAMDirectory() { setLockFactory(new SingleInstanceLockFactory());}初始化的时候,指定的是LockFactory抽象类的一个具体实现类SingleInstanceLockFactory。Sin...原创 2011-07-05 16:17:40 · 93 阅读 · 0 评论 -
影响Lucene索引速度原因以及提高索引速度技巧
先来看下影响索引的主要因素:MaxMergeDocs该参数决定写入内存索引文档个数,到达该数目后就把该内存索引写入硬盘,生成一个新的索引segment文件。所以该参数也就是一个内存buffer,一般来说越大索引速度越快。MaxBufferedDocs这个参数默认是disabled的,因为Lucene中还用另外一个参数(RAMBufferSizeMB)控制这个bufffer的索引文档个数。其...原创 2011-07-04 15:34:42 · 107 阅读 · 0 评论 -
lucene影响索引速度的因素-MergeFactor, MaxMergeDocs, RAMBufferSizeMB
在索引算法确定的情况下,最为影响Lucene索引速度有三个参数--IndexWriter中的 MergeFactor, MaxMergeDocs, RAMBufferSizeMB 。这些参数无非是控制内外存交换和索引合并频率,从而达到提高索引速度。当然这些参数的设置也得依照硬件条件灵活设置。MaxMergeDocs该参数决定写入内存索引文档个数,到达该数目后就把该内存索引写入硬盘,生成...原创 2011-07-04 15:28:08 · 93 阅读 · 0 评论 -
如何提高和优化Lucene搜索速度
确认你在使用Lucene的最新版本尽量使用本地文件系统远程文件系统一般来说都会降低搜索速度。如果索引必须分布在远程服务器,可以尝试将远程文件系统设置为只读。在某些情况下,这样可以提高性能。使用更快的硬件设备,特别是更快的IO设备Lucene搜索可以很好的工作在基于闪存的固态硬盘上。固态硬盘的寻道时间大概比传统的以磁盘为基础的硬盘快100倍。这意味着,配备固态硬盘的机器用...原创 2011-09-06 17:07:14 · 191 阅读 · 0 评论