Solr 6.0 学习(七) solr创建索引原理

原创 2016年06月03日 14:09:51

关键点:倒排索引

参考文章:http://blog.csdn.net/chunlei_zhang/article/details/38520315

作为搜索,我们传统的方式(正排索引)是从关键点出发,然后再通过关键点找到关键点代表的信息中能够满足搜索条件的特定信息,既通过KEY寻找VALUE。而Lucene的搜索则是采用了倒排索引的方式,即通过VALUE找KEY。而在中文全文搜索中VALUE就是我们要搜索的单词,存放所有单词的地方叫词典。KEY是文档标号列表(通过文档标号列表我们可以找到出现过要搜索单词VALUE的文档)。 正排索引从文档编号找词:

倒排索引是从词找文档编号:

当文档数据来临时,solr会首先对文档数据进行分词,创建索引库和文档数据库。所谓的分词是指:将一段字符文本按照一定的规则分成若干个单词。如下面两篇文档通过solr后如何产生分词存储:

文章中的标点符号可以直接过滤掉,像and、too可以直接过滤掉。形成的分词表表示:

Lucene的倒排索引存储结构为: 词项的字符串+词项的文档频率+记录词项的频率信息+记录词项的位置信息+跳跃偏移量 。简单的理解可以形成以下结构:

分别表示词,词出现的文档编号,文档中出现的频率和文档中出现的位置。这样当我们对词进行搜索时,会找到该词出现过的所有文档的ID,然后再通过该文档的ID寻找文档的具体内容。

  当然,Lucene词典中词的顺序是按照英文字母的顺序排列的,这样就可以采用压缩存储:假设有term,termagancy,termagant,termina四个词。每个字母需要1byte的空间,常规存储一共需要35byte。而压缩存储之后为:"term4agancy8t4inal",一共需要22byte,节省大量的空间。

这里有另外一篇文章介绍了更多关于solr全文索引的原理:http://www.importnew.com/12707.html

下面附上个人理解的倒排索引:


在solr中如果要搜索 word1 那么就出 返回 doc1 和 doc2 如果 搜索 word1 和 word3 那么就会做一个交叉,返回doc2。


版权声明:本文为博主原创文章,未经博主允许不得转载。

solr全文检索实现原理

solr那是我1年前使用到的一个搜索引擎,由于当初对于配置了相应了,但是今天突然面试问到了,哎,太久了,真的忘记了,今天特地写一篇博客记下来 solr是一个独立的企业级搜索应用服务器,它对外t提供类...

Solr分布式索引SolrCloud原理总结

……

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

跟我学solr---在solr admin中添加索引

这一章为大家介绍如何在solr admin中,通过浏览器向solr添加索引 一.添加xml格式的文档 进入solr admin后,点击Documents,选择Documentation T...

Solr4.6.1配置与建立索引——搜索引擎学习(一)

一、 solr简介 Solr是基于Lucene的全文搜索服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以...

Solr4.7从文件创建索引

索引数据源并不会一定来自于数据库、XML、JSON、CSV这类结构化数据,很多时候也来自于PDF、word、html、word、MP3等这类非结构化数据,从这类非结构化数据创建索引,solr也给我们提...

Solr 6.0 学习(二)创建core并插入索引

首先搭建solr环境,如:solr6.0学习(一)环境搭建 修改各种配置文件。 1、修改solrhome下的solr.xml文件 注解掉zookeeper搭建集群配置,我们后面会采用master-sl...

solr安装,以及建立索引关联数据库

基本运行环境,JDK8,tomcat8,solr6.6 solr的启动方式有两种: 1):使用自带tomcat 用终端进入solr的目录下,运行命令 bin/solr start -f 即可启动。...

认识solr结构,了解核心的文件目录

下载solr并解压后,发现solr的目录里有很多的东西,此时我们可能会感到很恐慌,不知如何下手,下面让我带你认识它。 1、解压后的solr目录结构如下: 虽然里面有很多的文件,但是我们需要...

Solr学习二索引库的创建

solr索引库的创建。
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Solr 6.0 学习(七) solr创建索引原理
举报原因:
原因补充:

(最多只允许输入30个字)