您好,登录后才能下订单哦!
这篇文章主要讲解了“Slor的基本概念和倒排索引介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Slor的基本概念和倒排索引介绍”吧!
Solr它是一种开放源码的、基于 Lucene Java 的搜索服务器,易于加入到 Web 应用程序中。
Solr 提供了层面搜索(就是统计)、命中醒目显示并且支持多种输出格式(包括XML/XSLT 和JSON等格式)。它易于安装和配置,而且附带了一个基于 HTTP 的管理界面。Solr已经在众多大型的网站中使用,较为成熟和稳定。
Solr 包装并扩展了 Lucene,所以Solr的基本上沿用了Lucene的相关术语。更重要的是,Solr 创建的索引与 Lucene 搜索引擎库完全兼容。
通过对Solr 进行适当的配置,某些情况下可能需要进行编码,Solr 可以阅读和使用构建到其他 Lucene 应用程序中的索引。
此外,很多 Lucene 工具(如Nutch、 Luke)也可以使用Solr 创建的索引。可以使用 Solr 的表现优异的基本搜索功能,也可以对它进行扩展从而满足企业的需要。
高级的全文搜索功能;
专为高通量的网络流量进行的优化;
基于开放接口(XML和HTTP)的标准;
综合的HTML管理界面;
可伸缩性-能够有效地复制到另外一个Solr搜索服务器;
使用XML配置达到灵活性和适配性;
可扩展的插件体系。
Lucene中的基本概念是:index(索引),document(文档),field(字段)和term(术语)
一个索引文件(index)包含一连串的文档(document);
一个文档(document)是由一连串字段(fields),类似于数据库中的一条记录;
一个字段(field)由一连串的术语(terms)组成;
一个术语(term)是一个字符串
ps:相同的字符串在不同的fields被认为是不同的term
index存储terms的统计数据,为了使得基于term的检索效率更高。相对于oracle中索引(B-TREE)结构,solr搜索引擎中采用的是一种倒排索引。 倒排索引(Inverted Index):倒排索引是实现“单词-文档矩阵”的一种具体存储形式,通过倒排索引,可以根据单词快速获取包含这个单词的文档列表。倒排索引主要由两个部分组成:“单词词典”和“倒排文件”。 文档(Document):一般搜索引擎的处理对象是互联网网页,而文档这个概念要更宽泛些,代表以文本形式存在的存储对象,相比网页来说,涵盖更多种形式,比如Word,PDF,html,XML等不同格式的文件都可以称之为文档。再比如一封邮件,一条短信,一条微博也可以称之为文档。在本书后续内容,很多情况下会使用文档来表征文本信息。
中文和英文等语言不同,单词之间没有明确分隔符号,所以首先要用分词系统将文档自动切分成单词序列。这样每个文档就转换为由单词序列构成的数据流,为了系统后续处理方便,需要对每个不同的单词赋予唯一的单词编号,同时记录下哪些文档包含这个单词,在如此处理结束后,我们可以得到最简单的倒排索引。在图中,“单词ID”一栏记录了每个单词的单词编号,第二栏是对应的单词,第三栏即每个单词对应的倒排列表。比如单词“谷歌”,其单词编号为1,倒排列表为{1,2,3,4,5},说明文档集合中每个文档都包含了这个单词。
之所以说上图所示倒排索引是最简单的,是因为这个索引系统只记载了哪些文档包含某个单词,而事实上,索引系统还可以记录除此之外的更多信息。下面这张图是一个相对复杂些的倒排索引,与上图的基本索引系统比,在单词对应的倒排列表中不仅记录了文档编号,还记载了单词频率信息(TF),即这个单词在某个文档中的出现次数。下图中,词“创始人”的单词编号为7,对应的倒排列表内容为:(3:1),其中的3代表文档编号为3的文档包含这个单词,数字1代表词频信息,即这个单词在3号文档中只出现过1次,其它单词对应的倒排列表所代表含义与此相同。
实用的倒排索引还可以记载更多的信息,索引系统除了记录文档编号和单词频率信息外,额外记载了两类信息,即每个单词对应的“文档频率信息”以及在倒排列表中记录单词在某个文档出现的位置信息。
“文档频率信息”代表了在文档集合中有多少个文档包含某个单词
以单词“拉斯”为例,其单词编号为8,文档频率为2,代表整个文档集合中有两个文档包含这个单词,对应的倒排列表为:{(3;1;<4>),(5;1;<4>)},其含义为在文档3和文档5出现过这个单词,单词频率都为1,单词“拉斯”在两个文档中的出现位置都是4,即文档中第四个单词是“拉斯”。
收集待索引的原文档
从数据库、web等获取原文档
将原文档交给分词组件(Tokenizer)
此过程叫做Tokenize,得到的结果称为Token。 会做如下几件事: a.将文档分成一个个独立的单词 b.去除标点 b.去除停词(stopword)
将得到的Token交给语言处理组件(LinguisticProcessor)
此过程处理的结果是Term 会做如下几件事: a.转为小写 b.将单词缩减为词根,如cars-->car c.将单词转变为词根,如drove-->drive
将得到的Term交给索引组件(Indexer)
会做如下几件事: a.将得到的Term创建字典 b.对字典按字母排序 c.合并相同的Term为倒排索引表
感谢各位的阅读,以上就是“Slor的基本概念和倒排索引介绍”的内容了,经过本文的学习后,相信大家对Slor的基本概念和倒排索引介绍这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。