摘要: 今天发现了一个较简单的方法来安装mono和monodevelop在linux上进行.NET开发。再次感受到mono强大的魅力那就是通过badgerports来安装,网址:http://babdgerports.org,一个专门负责ubuntu上mono软件包安装的团队做的badgerports is an Ubuntu repository. In order to use it, you must add it to your Software Sources.Click on "System", "Administration", "Sof 阅读全文
posted @ 2012-04-04 15:43 郭远威 阅读(926) 评论(0) 推荐(2) 编辑
摘要: 在win7或者XP下安装Ubuntu10.04,准备好一个空的硬盘分区,比如说E盘,格式化为NTFS针对主机的CPU,下载相应版本的Ubuntu,从下载的镜像文件中提取出wubi文件,并和镜像文件放在同一个目录下,比如说F盘双击wubi进行安装,选择安装语言为 English(US),如果选择chinese的话,在安装的过程中会下载语言包,很慢,要等很久,所以干脆直接选择英语,等安装完后在升级语言包。安装好后,依次点击下面设置,进行中文语言包的升级和中文输入法的安装 阅读全文
posted @ 2012-04-04 13:26 郭远威 阅读(835) 评论(0) 推荐(0) 编辑
摘要: linux下环境变量的读取分为login shell和non-login shell,第一次登录的时候由tty1-tty6的登录,以及通过窗体登录时需要输入帐号密码的登录,都叫做login shell我们经常在图形界面上启动新的终端机,这个时候登录的用户实质上non-login shelllogin shell 和non -login shell读取的配置文件是不一样的。login shell会去读取/etc/profile文件,这个是系统整体设置的环境变量login shell还会去读取 .bash_profile或.bash_login或.profile这些属于用户个人设置,你要改自己的设 阅读全文
posted @ 2012-04-03 15:36 郭远威 阅读(373) 评论(0) 推荐(1) 编辑
摘要: 分词的重要性对于一个搜索引擎来说是相当重要的,英文的分词相对简单,因为英文的每个单词都具有天然的分隔符,但当遇到中文时,就显得无能为力了。中文是世界上最复杂的语言之一,不同的字在不同的词语中可能代表不同的意思,一句话的意思不能简简单单的看汉字的意思,还有结合上下文语境,因此要让计算机理解中文是比较困难的。前面学习的所有例子中都提到了分词,都用的是lucene.net自带的标准分析器。代码如://构造一个多Field查询 Query query = MultiFieldQueryParser.Parse(Lucene.Net.Util.Version.LUCENE_29, ... 阅读全文
posted @ 2012-04-02 15:37 郭远威 阅读(598) 评论(0) 推荐(0) 编辑
摘要: 在实际的需求中,我们需要输入一个关键语句,希望能搜索到标题中含有此关键词或者内容中也还有此关键语句的文章,这就是一个多Field查询的问题当然多Field之间的关系可能为“与”也有可能为“或”。一般情况下,都在同一个目录索引下搜索,但是如果索引被分成很多文件,存在不同的地方,因此又会有一个多索引文件搜索的问题。下面通过代码演示:首先编写建索引的代码:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.IO;using Lucene.Net;using Luc 阅读全文
posted @ 2012-04-02 00:48 郭远威 阅读(869) 评论(1) 推荐(1) 编辑
摘要: java版本的lucene有一个Luke比较强大,可以查看索引的情况,.net也有人做了个NLuke,可惜在我这个lucene.net2.9.4用不了,可能是版本的问题于是在前人的基础上加以修改,现在可以用了。/*** author : yurow* http://birdshover.cnblogs.com* description:* * history : created by yurow 2009-8-25 16:47:44 */这个是原作者的信息,感谢了。下面这个是我修改后的源码,在.net4.0下编译http://files.cnblogs.com/guoyuanwei/Nluke 阅读全文
posted @ 2012-03-31 22:40 郭远威 阅读(837) 评论(3) 推荐(1) 编辑
摘要: 在前面的例子中,利用的都是直接在文件系统上建立索引,如 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 郭远威 阅读(1205) 评论(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 郭远威 阅读(599) 评论(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 郭远威 阅读(690) 评论(0) 推荐(1) 编辑
摘要: 建索引的代码,代码里面有注释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 Lucene.Net.Documents;namespace TestFileIndex{ class Program { stat... 阅读全文
posted @ 2012-03-29 11:49 郭远威 阅读(672) 评论(1) 推荐(0) 编辑