Lucene.Net研究
文章平均质量分 68
gooddasenlin
这个作者很懒,什么都没留下…
展开
-
Lucene.net 实现全文搜索
本文介绍一下Lucene.Net 是什么?Lucene.Net 能作什么?以及怎么做的问题?最后给出 Lucene.Net 实现全文搜索的一个示例1、Lucene.Net 是什么?Lucene.net 起初是一个开源项目然后转向商业化,也在Lucene.net 2.0已经发布,不过是要money D ,Lucene.net的命运有点类似于FreeTextBox ,它在 1.6.5 版本转载 2008-07-02 18:25:00 · 873 阅读 · 0 评论 -
Lucene.Net 2.3.1开发介绍——附录一、如何下载Lucene.Net的各种版本
首先,你需要一个svn客户端。TortoiseSVN非常好用,可以从官方网站下载。下载地址:http://tortoisesvn.net/downloads。下载完成,就安装,需要重启电脑。然后在d盘下建立一个空文件夹,命名为Lucene.Net。打开文件夹,右键,则出现菜单。如图"附录一 1"。附录一 1发现多了两项,分别是SVN Checkout和TortoiseSVN。点“SVN C转载 2008-09-17 18:08:00 · 728 阅读 · 0 评论 -
Lucene.Net 2.3.1开发介绍 —— 二、分词(一)
Lucene.Net中,分词是核心库之一,当然,也可以将它独立出来。目前Lucene.Net的分词库很不完善,实际应用价值不高。唯一能用在实际场合的StandardAnalyzer类,效果也不是很好。内置在Lucene.Net里的分词都被放在项目的Analysis目录下,也就是Lucene.Net.Analysis命名空间下。分词类的命名一般都是以“Analyzer”结束,比如Standard转载 2008-09-17 18:11:00 · 725 阅读 · 0 评论 -
Lucene.Net 2.3.1开发介绍 —— 三、索引(一)
在说索引之前,先说说索引是什么?为什么要索引?怎么索引? 先想想看,假如现在有一个文本,我们会怎么去搜索。比如,有一个string = "abcdefghijklmnopqrstuvwxyz",这都是26个字母。现在要看看里面是不是有a,用IndexOf就可以很方便实现。现在数据量大了,在数据库里已经有100多条数据了,当然,利用数据库提供的操作方法,也可以很方便的查找。而这里先抛开数转载 2008-09-17 18:18:00 · 604 阅读 · 0 评论 -
Lucene.Net 2.3.1开发介绍 —— 三、索引(六)
2.2 Field的Boost如果说Document的Boost是一条线,那么Field的Boost则是一个点。怎么理解这个点呢?设置Document的Boost会影响所有字段。在搜索的过程中,一般至少会搜索两个Field,比如同时搜索标题和内容。而Document的Boost将同时影响标题和内容的搜索得分,但是设置Field的Boost则不会有那么大的影响,Field的Boost只会影响转载 2008-09-17 18:23:00 · 605 阅读 · 0 评论 -
Lucene.Net 2.3.1开发介绍 —— 阅读索引
Lucene.Net 2.3.1开发介绍 —— 简介 Lucene.Net 2.3.1开发介绍 —— 一、接触Lucene.Net Lucene.Net 2.3.1开发介绍 —— 二、分词(一) 本篇介绍了如何测试分词器的效果,并且简单测试了一下Lucene.Net内置分词器的效果。Lucene.Net 2.3.1开发介绍 —— 二、分词(二) 本篇介绍Lucene.Net转载 2008-09-17 18:10:00 · 1314 阅读 · 0 评论 -
Lucene.Net 2.3.1开发介绍 —— 二、分词(六)
Lucene.Net的上一个版本是2.1,而在2.3.1版本中才引入了Next(Token)方法重载,而ReusableStringReader类也是在新版本中引入的。这样改变,导致了2.3.1版本不得不修改2.1版以前的所有分词器。带来的另外一个问题的是,以前的一些现有分词器,拿到这里可能就不能用了。 要使用ReadToEnd还有另外一个解决方法——修改Lucene.Net源码。转载 2008-09-17 18:15:00 · 577 阅读 · 0 评论 -
Lucene.Net 简介
Lucene 简介Lucene 能够为文本类型的数据建立索引,所以你只要能把你要索引的数据格式转化的文本的,Lucene 就能对你的文档进行索引和搜索。比如你要对一些 HTML 文档,PDF 文档进行索引的话你就首先需要把 HTML 文档和 PDF 文档转化成文本格式的,然后将转化后的内容交给 Lucene 进行索引,然后把创建好的索引文件保存到磁盘或者内存中,最后根据用户输入的查询条件在索引转载 2008-07-02 18:18:00 · 1300 阅读 · 0 评论 -
用Lucene.net对数据库建立索引及搜索
原文出处:http://blog.csdn.net/zhanghefu/archive/2007/05/08/1600702.aspx用Lucene.net对数据库建立索引及搜索 最近我一直在研究 Lucene.net ,发现Lucene.net对数据库方面建索引的文章在网上很少见,其实它是可以对数据库进行索引的,我闲着没事,写了个测试程序,竟然成功了, 可以实现对转载 2008-07-02 18:33:00 · 2920 阅读 · 0 评论 -
Lucene.Net 2.3.1开发介绍 —— 三、索引(四)
4、索引对搜索排序的影响 搜索的时候,同一个搜索关键字和同一份索引,决定了一个结果,不但决定了结果的集合,也确定了结果的顺序。那个这个结果是怎么得出来的?这个顺序又是怎么排的呢?这两个问题不是本节讨论的重点,但是这两个问题却关系到本节要讨论的,索引对结果的影响问题。在不使用字段排序的情况下,Lucene.Net默认是按文档的得分来排序的,这个公式看着很复杂,感觉像是大学时高数书上的那些个公转载 2008-09-17 18:21:00 · 532 阅读 · 0 评论 -
Lucene.Net 2.3.1开发介绍 —— 三、索引(二)
2、索引中用到的核心类在Lucene.Net索引开发中,用到的类不多,这些类是索引过程的核心类。其中Analyzer是索引建立的基础,Directory是索引建立中或者建立好存储的介质,Document和Field类是逻辑结构的核心,IndexWriter是操作的核心。其他类的使用都被隐藏掉了,这也是为什么Lucene.Net使用这么方便的原因。 2.1 Analyzer前面已经对转载 2008-09-17 18:19:00 · 597 阅读 · 0 评论 -
Lucene.Net 2.3.1开发介绍 —— 一、接触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到2转载 2008-09-17 18:09:00 · 856 阅读 · 0 评论 -
Lucene.Net 2.3.1开发介绍 —— 三、索引(三)
3、Field配置所产生的效果 索引数据,简单的代码,只要两个方法就搞定了,而在索引过程中用到的一些类里最简单,作用也不小的就是Field,接下来看看Field的各项设置都会有什么样的效果。代码 3.1 CodeCode highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighl转载 2008-09-17 18:20:00 · 611 阅读 · 0 评论 -
Lucene.Net 2.3.1开发介绍 —— 三、索引(五)
话接上篇,继续来说权重对排序的影响。从上面的4个测试,只能说是有个直观的理解了。“哦,是!调整权重是能影响排序了,但是好像没办法来分析到底怎么调啊!”。似乎是这样,现在需要把问题放大,加大索引的内容。到博客园新闻区,用zzk找了4篇内容包含“测试”的文章。代码变成 2.1.5 代码2.1.5Code highlighting produced by Actipro CodeHighlighte转载 2008-09-17 18:22:00 · 636 阅读 · 0 评论 -
Lucene.Net 2.3.1开发介绍 —— 简介
Lucene.Net是Lucene在dot net平台上的移植版本。它的功能与Lucene一样,都是用来提供一组API,让我们能快速开发自己的搜索引擎,当然,是全文搜索。它不是一个程序,拿到它并不能立刻运行,你必须自己实现逻辑过程。这是一个和.Net Framework一样的框架。Lucene是用Java写的,尔后衍生出Nutch,接着又衍生出Hadoop。这些可以说和Lucene没有内在联系转载 2008-09-17 18:07:00 · 655 阅读 · 0 评论 -
Lucene.Net 2.3.1开发介绍 —— 二、分词(二)
1.2、分词的过程 1.2.1、分词器工作的过程内置的分词器效果都不好,那怎么办?只能自己写了!在写之前当然是要先看看内置的分词器是怎么实现的了。从1.1分析分词效果,可以看出KeywordAnalyzer这个分词器最懒惰,基本什么事情也没做。并不是它不会做,而是我们没找到使用它的方法,就像手上拿着个盒子,不知道里面是什么,就不知道这个是干嘛的,有什么用。打开盒子,那就是要查看源代转载 2008-09-17 18:12:00 · 531 阅读 · 0 评论 -
Lucene.Net 2.3.1开发介绍 —— 二、分词(三)
1.3 分词器结构 1.3.1 分词器整体结构从1.2节的分析,终于做到了管中窥豹,现在在Lucene.Net项目中添加一个类关系图,把TokenStream和他的儿孙们统统拉上去,就能比较好的把握他们之间的关系。 图 1.3.1.1 如图1.3.1.1 就是他们的类关系图。看出如果要做一个分词器,最短的路,就是继承第二代,成为第三代。然后再写一个Analyze转载 2008-09-17 18:12:00 · 525 阅读 · 0 评论 -
Lucene.Net 2.3.1开发介绍 —— 二、分词(四)
2.1.2 可以使用的内置分词 简单的分词方式并不能满足需求。前文说过Lucene.Net内置分词中StandardAnalyzer分词还算比较实用(见1.1.2小节)。StandardAnalyzer为什么能满足我们的部分需求,而它又有哪些不足呢?看分词的好坏还是要从效果说起。简单的说,在中英文混合的情况下,StandardAnalyzer会把英文按空格拆,而中文则按单字拆。因为中文转载 2008-09-17 18:13:00 · 485 阅读 · 0 评论 -
Lucene.Net 2.3.1开发介绍 —— 二、分词(五)
2.1.3 二元分词 上一节通过变换查询表达式满足了需求,但是在实际应用中,如果那样查询,会出现另外一个问题,因为,那样搜索,是只要出现这个字,不管它出现在什么位置。这就产生了上一小节开头讲的,对准确性产生了极大干扰。比如,如果有一段这样的话:“这是一个英雄!他有无法用词汇形容的孤单,但是他并没有用言语来表达。”这句话包含了“英 语 单 词”这四个字,但是却和“英语单词”一点关系都没有。首转载 2008-09-17 18:15:00 · 542 阅读 · 0 评论 -
Web下使用lucene.net需要注意的问题
eaglet的分词组是应用于winform上的.所以用到web应用程序得改造下路径 在写类库项目时,经常会有某些特殊业务需要用到服务器端的物理路径,使用传统的System.IO.Directory.GetCurrentDirectory()方法返回的则是WINNT/System32目录,这个一般不能满足正常的业务需求,而要得到具体运行DLL所在的物理目录可以通过Assembly.GetExe原创 2008-09-23 18:11:00 · 690 阅读 · 0 评论