摘要: 在前面的例子中,利用的都是直接在文件系统上建立索引,如 Lucene.Net.Store.Directory indexDir = FSDirectory.Open(new DirectoryInfo(@"F:\lucene_index"));其中Directory是一个抽象类,具有多态性,这里用过FSDirectory.Open()静态方法实现了一个FSDirectory实例,并给Directory赋值。当然Lucene.Net也提供了内存中的索引RAMDirectory,在内存中的索引要比文件中的索引要快得多。下面通过一个例子来说明,同时对10000个文档建立索引,其它 阅读全文
posted @ 2012-03-30 20:56 郭远威 阅读(1228) 评论(1) 推荐(1) 编辑
摘要: 在许多应用程序中,程序性能的瓶颈经常出现在磁盘的I/O过程中,当新的Document加入索引中时,他们最初被缓存在内存中,而不是立即写入磁盘里。lucene.net中提供了几个参数用来控制缓存的大小和Document写入磁盘的频率。先看第一个参数:合并因子mergeFactor在源码中的定义如下:public const int DEFAULT_MERGE_FACTOR = 10;默认值为10,表示每当加入10个Document时就会产生一个新的segment,当第10个这个segment产生时会合并这些segement形成一个含有100个Document的segment,当第10个这个seg 阅读全文
posted @ 2012-03-30 18:52 郭远威 阅读(605) 评论(1) 推荐(1) 编辑
摘要: 用的lucene.net的版本为2.9.4,lucene.net提供的API很强大,建个索引很方便,但是如果能搞清楚索引的文件结构,会对深入理解有帮助。先写个简单的建索引的代码如下:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.IO;using Lucene.Net.Index;using Lucene.Net.Store;using Lucene.Net.Util;using Lucene.Net.Analysis.Standard;using Lu 阅读全文
posted @ 2012-03-30 17:48 郭远威 阅读(696) 评论(0) 推荐(1) 编辑