lucene索引和搜索过程中的核心类介绍

[size=large][b]lucene索引和搜索过程中的核心类介绍[/b][/size]

lucene是一个工具包,一个Java类库,是一个1M多的jar文件,并不是一个完整的搜索程序,Lucene只专注于文本的索引和搜索功能,它能够让应用程序在不需要了解复杂的索引和搜索的实现的情况下,通过调用简单封装API,为应用程序添加上搜索功能。

[size=medium]1.[b]执行简单的索引过程需要用到以下几个类:[u]IndexWriter Directory Analyzer Document Field[/u][/b][/size]

[b]IndexWriter[/b]:(写索引)是索引过程的核心组件,这个类负责创建新的索引或者打开已有索引,以及向索引中添加,删除或者更新被索引的信息。可以把IndexWriter当作一个提供针对索引文件的写入操作,但不能用于读取或者搜索索引。IndexWriter需要开辟一定空间来存储索引,此功能可以由Directory完成.


[b]Directory[/b]:用来描述Lucene索引的存放位置。它是一个抽象类,它的子类负责具体指定索引的存储路径,可以使用FSDirectory.open()方法来获取真实文件在文件系统中的存储路径。

[b]Analyzer[/b]:IndexWriter不能直接索引文本,文本首先需要被分词成词汇单元,而Analyzer负责从被索引文本文件中提取词汇单元,并进行一些处理,比如说,剔出停用词(a, the ,this对搜索无意义的词),如果被索引内容不是纯文本文档,需要首先将其转换成文本文档格式。(索引本质上就是词汇单元到文件之间的映射,所以建立索引和搜索索引处理的都是词汇单元).


[b]Document[/b]:用来描述文档的,这里的文档可以指一个 HTML 页面,一封电子邮件,或者是一个文本文件。一个 Document 对象由多个 Field 对象组成的。可以把一个 Document 对象想象成数据库中的一个记录,而每个 Field 对象就是记录的一个字段。


[b]Field[/b]:索引中每个文档都包含一个或者多个不同的域,这个域就是Field,而每个域都有一个域名和对应的域值。Field 对象是用来描述一个文档的某个属性的,比如一封电子邮件的标题和内容可以用两个 Field 对象分别描述。


2.[size=medium][b]执行简单的搜索过程需要用到以下几个类:[u]IndexSearch, Term, Query, TermQuery,TopDocs[/u][/b][/size]

[b]IndexSearch[/b]:类用于搜索IndexWriter类创建的索引

[b]TermQuery[/b]:是Lucene提供的最基本的查询类型,Query的子类,用来匹配指定域中包含特定项的文档。生成一个TermQuery对象由如下语句完成: TermQuery termQuery = new TermQuery(new Term(“fieldName”,”queryWord”)); 它的构造函数只接受一个参数,那就是一个Term对象。


[b]Query[/b]:这是一个抽象类,它有多个实现,比如TermQuery, BooleanQuery, PrefixQuery. 这个类的目的是把用户输入的查询字符串封装成Lucene能够识别的Query。


[b]Term[/b]:Term 是搜索的基本单位,一个Term对象有两个String类型的域组成。生成一个Term对象可以有如下一条语句来完成:Term term = new Term(“fieldName”,”queryWord”); 其中第一个参数代表了要在文档的哪一个Field上进行查找,第二个参数代表了要查询的关键词


[b]TopDocs[/b]:用来保存搜索结果,是一个简单的指针容器,指针一般指向前N个排名的搜索结果.TopDocs会记录前N个结果中每个结果的int docID和浮点型分数。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值