luncence.net
文章平均质量分 81
JIN20468320
我思故我在 我有我精彩!!
展开
-
Lucene.Net 开发介绍 —— (一)、接触Lucene.Net
1、引用Lucene.Net类库找到Lucene.Net的源代码,在“C#/src/Lucene.Net”目录。打开Visual Studio,我的版本是2008,而Lucene.Net默认的是2005。先创建一个项目,简单起见,创建一个C#控制台程序。图 1.1然后添加Lucene.Net进项目,如图 1.2 - 1.3。图 1.2图 1.3这个过程要进行一个VS2005到2008的转换。添加原创 2008-10-23 12:22:00 · 2550 阅读 · 1 评论 -
Lucene.Net 开发介绍 —— 二、分词(三)
1.3 分词器结构 1.3.1 分词器整体结构从1.2节的分析,终于做到了管中窥豹,现在在Lucene.Net项目中添加一个类关系图,把TokenStream和他的儿孙们统统拉上去,就能比较好的把握他们之间的关系。 图 1.3.1.1 如图1.3.1.1 就是他们的类关系图。看出如果要做一个分词器,最短的路,就是继承第二代,成为第三代。然后再写一个Analyzer的子类,专门用来做新分词器的适配器原创 2008-10-23 12:58:00 · 4398 阅读 · 0 评论 -
Lucene.Net 2.3.1开发介绍 —— 索引(二)
2、索引中用到的核心类在Lucene.Net索引开发中,用到的类不多,这些类是索引过程的核心类。其中Analyzer是索引建立的基础,Directory是索引建立中或者建立好存储的介质,Document和Field类是逻辑结构的核心,IndexWriter是操作的核心。其他类的使用都被隐藏掉了,这也是为什么Lucene.Net使用这么方便的原因。 2.1 Analyzer前面已经对Analyzer原创 2008-10-23 13:20:00 · 4632 阅读 · 0 评论 -
Lucene.Net 开发介绍 —— 二、分词(二)
1.2、分词的过程 1.2.1、分词器工作的过程内置的分词器效果都不好,那怎么办?只能自己写了!在写之前当然是要先看看内置的分词器是怎么实现的了。从1.1分析分词效果,可以看出KeywordAnalyzer这个分词器最懒惰,基本什么事情也没做。并不是它不会做,而是我们没找到使用它的方法,就像手上拿着个盒子,不知道里面是什么,就不知道这个是干嘛的,有什么用。打开盒子,那就是要查看源代码了! 代码原创 2008-10-23 12:53:00 · 5718 阅读 · 0 评论 -
Lucene.Net 开发介绍 —— 四、搜索(三)
4.3 表达式用户搜索,只会输入一个或几个词,也可能是一句话。输入的语句是如何变成搜索条件的上一篇已经略有提及。4.3.1 观察表达式在研究表达式之前,一定要知道,任何一个Query都会对于一个表达式。不光可以通过Query构造表达式,还可以通过拼接字符串构造。这里说的观察表达式是指,用Query完成查询语句后,用ToString()方法输出Query的表达式。很简单是吧,呵呵。4.3.2 表达式原创 2008-10-23 13:29:00 · 3862 阅读 · 0 评论 -
Lucene.Net开发介绍 —— 四、搜索(二)
4.3 表达式用户搜索,只会输入一个或几个词,也可能是一句话。输入的语句是如何变成搜索条件的上一篇已经略有提及。4.3.1 观察表达式在研究表达式之前,一定要知道,任何一个Query都会对于一个表达式。不光可以通过Query构造表达式,还可以通过拼接字符串构造。这里说的观察表达式是指,用Query完成查询语句后,用ToString()方法输出Query的表达式。很简单是吧,呵呵。4.3.2 表达式原创 2008-10-23 13:15:00 · 4450 阅读 · 0 评论 -
Lucene.Net开发介绍 —— 二、分词(六)
Lucene.Net的上一个版本是2.1,而在2.3.1版本中才引入了Next(Token)方法重载,而ReusableStringReader类也是在新版本中引入的。这样改变,导致了2.3.1版本不得不修改2.1版以前的所有分词器。带来的另外一个问题的是,以前的一些现有分词器,拿到这里可能就不能用了。 要使用ReadToEnd还有另外一个解决方法——修改Lucene.Net源码。 在修改之前,我原创 2008-10-23 13:10:00 · 4720 阅读 · 0 评论 -
Lucene.Net 开发介绍 —— 二、分词(四)
2.1.2 可以使用的内置分词 简单的分词方式并不能满足需求。前文说过Lucene.Net内置分词中StandardAnalyzer分词还算比较实用(见1.1.2小节)。StandardAnalyzer为什么能满足我们的部分需求,而它又有哪些不足呢?看分词的好坏还是要从效果说起。简单的说,在中英文混合的情况下,StandardAnalyzer会把英文按空格拆,而中文则按单字拆。因为中文是按单字拆,原创 2008-10-23 13:07:00 · 4882 阅读 · 0 评论 -
Lucene.Net 开发介绍 —— 二、分词(一)
Lucene.Net中,分词是核心库之一,当然,也可以将它独立出来。目前Lucene.Net的分词库很不完善,实际应用价值不高。唯一能用在实际场合的StandardAnalyzer类,效果也不是很好。内置在Lucene.Net里的分词都被放在项目的Analysis目录下,也就是Lucene.Net.Analysis命名空间下。分词类的命名一般都是以“Analyzer”结束,比如StandardAn原创 2008-10-23 12:49:00 · 5149 阅读 · 0 评论 -
Lucene.Net 开发介绍 —— 四、搜索(一)
既然是内容筛选,或者说是搜索引擎,有索引,必然要有搜索。搜索虽然与索引有关,那也只是与索引后的文件有关,和索引的程序是无关的,因此,搜索和索引一般是分开部署。简单地说,就是一个应用程序(桌面程序)来索引,一个WEB程序来实现搜索。当然,为了测试的时候简单,这里还是使用NUnit的方式运行。搜索讲完后,将会简单介绍单机搜索引擎如何部署。4.1 搜索与什么有关搜索与什么有关呢?即使没有看过前面的文章,原创 2008-10-23 13:12:00 · 4016 阅读 · 0 评论