Lucene基本都是概念的东西,希望等我自己回头看的时候还能记起来点就行

Luceneapache下的一个开放源代码的全文检索引擎工具包。提供了完整的查询引擎和索引引擎,部分文本分析引擎。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能。

lLucene是一套用于全文检索和搜寻的开源程式库,由Apache软件基金会支 持和提供

lLucene提供了一个简单却强大的应用程式接口,能够做全文索引和搜寻, 在Java开发环境里Lucene是一个成熟的免费开放源代码工具

lLucene并不是现成的搜索引擎产品,但可以用来制作搜索引擎产品

我的理解Luene其实就是一个搜索的插件或者框架,但是不是一个完整的产品,需要自己代码去完善

Lucene与搜索引擎的区别

全文检索系统是按照全文检索理论建立起来的用于提供全文检索服务的软件系统,包括建立索引、处理查询返回结果集、增加索引、优化索引结构等功能。例如:百度搜索、eclipse帮助搜索、淘宝网商品搜索等。

搜索引擎是全文检索技术最主要的一个应用,例如百度。搜索引擎起源于传统的信息全文检索理论,即计算机程序通过扫描每一篇文章中的每一个词,建立以词为单位的倒排文件,检索程序根据检索词在每一篇文章中出现的频率和每一个检索词在一篇文章中出现的概率,对包含这些检索词的文章进行排序,最后输出排序的结果。全文检索技术是搜索引擎的核心支撑技术。

Lucene和搜索引擎不同,Lucene是一套用java或其它语言写的全文检索的工具包,为应用程序提供了很多个api接口去调用,可以简单理解为是一套实现全文检索的类库,搜索引擎是一个全文检索系统,它是一个单独运行的软件系统

相关术语

文档(Document:一般搜索引擎处理的对象是互联网网页,对于搜索引擎来讲,WordPDFhtmlXML等不同格式的文件都可以称为文档,一般以文档来表示文本信息。

文档集合(Document Collection:由若干文档构成的集合成为文档集合。比如海量的互联网网页等。

文档编号(Document ID:在搜索引擎内部,会为文档集合每个文档赋予一个唯一的内部编号,以作为文档的唯一标识,以便于处理。

单词编号(Word ID:与文档编号类似,搜索引擎内部以唯一的编号来表示某个单词,以作为某个单词的唯一表示。

倒排索引(Inverted Index:倒排索引是实现单词——文档矩阵的一种具体存储形式。通过倒排索引,可以根据单次快速获取包含这个单词的文档列表。倒排索引主要由两个部分组成:单词词典和倒排文件

单词词典Lexicon:搜索引擎通常的索引单位是单词,单词词典是由文档集合中出现过的所有单词构成的字符串集合,单词词典内每条索引记载单词本身的一些信息及指向倒排列表的指针。单词也就是我们在搜索的一些关键字,也称为词条

倒排列表(PostingList:倒排列表记载了出现过某个单词的所有文档的文档列表及单词在该文当中出现的位置信息,每条记录成为一个倒排向(Posting)。根据倒排列表,即可获知哪些文档包含某个单词。

倒排文件Inverted File:所有单词的倒排列表往往顺序地存储在磁盘的某个文件里,这个文件即为倒排文件,倒排文件是存储倒排索引的物理文件。

顺序扫描

所谓顺序扫描,例如要找内容包含一个字符串的文件,就是一个文档一个文档的看,对于每一个文档,从头看到尾,如果此文档包含此字符串,则此文档为我们要找的文件,接着看下一个文件,直到扫描完所有的文件。这种方法是顺序扫描方法,数据量大就搜索慢。

倒排索引

倒排索引(也称为倒排文件)是一种存储了来自文本中的映射的索引数据结构。比如单词或者数字,对应到它们在数据库、一个文件或者一组文件中的位置。它是在文档检索系统中使用的最流行的数据结构,在搜索引擎中有大规模使用案例

例如我们使用新华字典查询汉字,新华字典有偏旁部首的目录(索引),我们查字首先查这个目录,找到这个目录中对应的偏旁部首,就可以通过这个目录中的偏旁部首找到这个字所在的位置(文档)。

倒排索引做两件事情:

1、提取资源中关键信息,建立索引(目录)

2、搜索时,根据关键字(目录),找到资源的位置

应用场景

1、 单机软件的搜索(word中的搜索)

2、 站内搜索 (baidu贴吧、论坛、 京东、taobao

3、 垂直领域的搜索 (docin豆丁、拉勾、100offer

4、 专业搜索引擎公司 (googlebaidu

相关推荐