`
caozuiba
  • 浏览: 905251 次
文章分类
社区版块
存档分类
最新评论

DotLucene源码浅读笔记(2) : Lucene.Net.Documents

 
阅读更多
<iframe marginwidth="0" marginheight="0" src="http://218.16.120.35:65001/PC/Global/images/b.html" frameborder="0" width="728" scrolling="no" height="90"></iframe>

这个写的比较抱歉,因为已经开始阅读Index部分了,Documents这个部分很早之前写了,但觉得没什么价值没发表,荒芜了一段时间,现在又开始了.这篇仅仅为了系列的完整.也发表了吧,大家随便仍鸡蛋吧 :).

这个命名空间的类相对较少,也相对较简单,一共才四个类,主要的类是Document,Field,

DotLucene中,可以这样认为,Document就是一种类似于数据库中的数据列的数据结构,Field就相当于字段;Document由多个Field组成,并且DotLucene并不要求每个Document的结构是一样的, DotLucene中,送入到索引器中索引的的数据是Document,搜索出来的数据也是Document。所以只要你的数据源能转化成Document这样的数据结构就可以被DotLucene索引。准确点来说,应该是,不管是HTMLWord,PDF格式还是啥格式 ,只要能转换成文本就可以被索引。当然如果你意想天开。把图片序化成字串加入索引也可以。再写个特别的Analyzer,说不定会成为一个特别的图片搜索引擎。J

下面从源代码的角度整理一下Document,Field的作用和机理。

Document : 从源码的角度看,他就是一个ArrayList的包装类。封装了把Field对象加入,取出ArrayList等方法,以及SetBoost(权重)等等方法组成的类。其实这样的设计比较常见,也是很不错的技巧。

Field :这个类相对比较长,从应用的角度看,最主要的是理解几个概念,

那一个构造函数做代表:

public Field(System.String name, System.String string_Renamed, bool store, bool index, bool token, bool storeTermVector)

其中:

store : 是否存储;

index : 是否索引;

token : 是否分词;如果需要索引,token就必须为true,只有分词后才能够被索引。

Field的主要类型,都是这几个参数的变化而已,我抄了两个表格:
偏向代码角度,其实这个表格没太大作用。下面不同的方法,其实就是return new Filed(?),不同的是?里的参数组合不同。

方法

切词

索引

存储

用途

Field.Text(String name, String value)

Yes

Yes

Yes

切分,索引,并存储,比如:titlesubject

Field Text(String name, Reader value)

Yes

Yes

Yes

与上面同, Term Vector并不存储此Field

Field Text(String name, String value, boolean storeTermVector)

Yes

Yes

Yes

切分,索引,存储,比如:title,subject.于上面不同的加入了一个控制变量

Field Text(String name, Reader value, boolean storeTermVector)

Yes

Yes

Yes

切分,索引,存储,比如:title,subject.于上面不同的加入了一个控制变量

Field.Keyword(String name, String value)

No

Yes

Yes

不切分,索引,存储,比如:date,url

Field Keyword(String name, Date value)

不切分,存储,索引,用来返回hits

Field.UnIndexed(String name, String value)

No

No

Yes

不切分,不索引,存储,比如:文件路径

Field.UnStored(String name, String value)

Yes

Yes

No

只全文索引,不存储

Field UnStored(String name, String value, boolean storeTermVector)

Yes

Yes

No

于上面相同,不同的是加入了一个控制变量

http://www.dmresearch.net/html/content/lucene-nutch/1000001794.php

偏向应用的:

Keywork

该类型的数据将不被分析,而会被索引并保存保存在索引中.

UnIndexed

该类型的数据不会被分析也不会被索引,但是会保存在索引.

UnStored

UnIndexed刚好相反,被分析被索引,但是不被保存.

Text

UnStrored类似.如果值的类型为string还会被保存.如果值的类型为Reader就不会被保存和UnStored一样.

http://www.cnblogs.com/idior/articles/120301.html

最后,取得的Field的值是用StringValue()不是ToString().ToString()输出是描述这个Field的状态信息。不知道这个是不是Java带过来的毛病(习惯?)

需要特别说明的是DotLucene的数字和日期的处理方式,相关的类NumberToolsDataTools

分享到:
评论

相关推荐

    Lucene.Net 2.0 源码+文档

    Lucene.Net 2.0 源码+文档

    站内搜索(Lucene.net)测试

    Lucene(这里用到的是Lucene.net版本也成为DotLucene)是一个信息检索的函数库(Library),利用它你可以为你的应用加上索引和搜索的功能. Lucene的使用者不需要深入了解有关全文检索的知识,仅仅学会使用库中的一个类,...

    dotlucene 源码 开发包

    dotlucene 源码 开发包 包括dotlucene1.9.1源码+Demo 学习资料:http://www.cnblogs.com/idior/category/21216.html http://www.cnblogs.com/kwklover/category/62322.html

    DotLucene演示源码.rar

    DotLucene实际是Lucene的Asp.net版本,也称为lucene.net 该项目的原型为DotLuceneAPISearchDemo-1.1,后经51aspx升级为Asp.net2.0版本并改为WebApplication类型 该demo演示了Lucene的常用功能(智能分词、关键字...

    DotLucene演示源码

    DotLucene演示源码 DotLucene实际是Lucene的Asp.net版本,也称为lucene.net 该demo演示了Lucene的常用功能(智能分词、关键字高亮等)

    ShootSearch (基于dotlucene的c#开源搜索引擎)

    平台:.Net1.1 C# + dotlucene 1.9.0.2 ShootSearch是一个c#编写的基于dotlucene的开源搜索引擎.其目标是能够检索http,ftp,本地,本地网络邻居四类资源. 已经完成http部分. 测试DEMO: 新浪&搜狐首页开始所有...

    Lucene结合Sql建立索引Demo源码.rar

    Lucene(这里用到的是Lucene.net版本也成为DotLucene)是一个信息检索的函数库(Library),利用它你可以为你的应用加上索引和搜索的功能. Lucene的使用者不需要深入了解有关全文检索的知识,仅仅学会使用库中的一个类,...

    利用Lucene.NET建立SQL数据库记录索引文件程序C#源代码(包含数据库结构)

    对初学使用dotlucent作站...利用dotlucene为网站做的索引文件的应用程序。 数据库源是SQL Server,项目是用VS.NET2008开发的。 应用程序界面可以配置数据库链接,生成报告,定时执行增量索引,对单条索引进行更新操作。

    lucene

    www.dotlucene.net.zip

    Lucene结合Sql建立索引

    Lucene(这里用到的是Lucene.net版本也成为DotLucene)是一个信息检索的函数库(Library),利用它你可以为你的应用加上索引和搜索的功能. Lucene的使用者不需要深入了解有关全文检索的知识,仅仅学会使用库中的一个类,...

    Lucene结合Sql建立索引Demo源码

    Lucene(这里用到的是Lucene.net版本也成为DotLucene)是一个信息检索的函数库(Library),利用它你可以为你的应用加上索引和搜索的功能. Lucene的使用者不需要深入了解有关全文检索的知识,仅仅学会使用库中的一个类,...

    商业源码-编程源码-DotLucene演示源码.zip

    商业源码-编程源码-DotLucene演示源码.zip

    信息检索的函数库

    Lucene(这里用到的是Lucene.net版本也成为DotLucene)是一个信息检索的函数库(Library),利用它你可以为你的应用加上索引和搜索的功能. Lucene的使用者不需要深入了解有关全文检索的知识,仅仅学会使用库中的一个类,...

    asp.netDotLucene演示

    DotLucene实际是Lucene的Asp.net版本,也称为lucene.net 该项目的原型为DotLuceneAPISearchDemo-1.1,后经51aspx升级为Asp.net2.0版本并改为WebApplication类型 该demo演示了Lucene的常用功能(智能分词、关键字高亮...

    Lucene结合Sql建立索引Demo

    Lucene结合Sql建立索引Demo源码,Lucene(这里用到的是Lucene.net版本也成为DotLucene)是一个信息检索的函数库(Library),利用它你可以为你的应用加上索引和搜索的功能。Lucene的使用者不需要深入了解有关全文检索的...

    UindexWeb搜索

    UindexWeb搜索是一个完整的蜘蛛程序,他的内部使用多线程, 多个自定义组件来实现搜索,在打开工程前,需要先安装如下自定 义组件: ...UindexStatusBar.pas (用来在...就能实现搜索,再加上ASP.Net的支持,简直就是必然选择.

    dotlucene信息检索高亮显示

    dotlucene信息检索高亮显示

    Cuyahoga源码

    一款.net平台开源CMS内容管理框架,可用于学习NHibernate、dotLucene、Castle等开源框架,以及Web建站的二次开发等用途。

    迅龙中文Web搜索引擎源码

    迅龙中文Web搜索引擎是基于.NET的面向Web的信息检索解决方案。开发使用了dotLucene、WordNet、Program#等开源项目。在HTML和RSS的基础搜索模块上,增加改进型的AIML模块和英文的WordNet 模块。项目还采用了中文分词...

Global site tag (gtag.js) - Google Analytics