作为搜索,本文章原地址: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配置中文解析器和将数据导入solr索引库时所需的jar包
在tomcat中配置solr,以及solr 全文搜索建立索引的相关方法总结
ES和solr都是基于Lucence的搜索框架,文档比较2中方案适合的不同场景和优劣
Solr数据库插入(全量和增量)索引,全量一般用于第一次创建索引情况,批量一般更新数据部分创建索引。
某些情况下可能需要进行编码,Solr 可以阅读和使用构建到其他 Lucene 应用程序中的索引。此 外,很多 Lucene 工具(如 Nutch、 Luke)也可以使用 Solr 创建的索引 Solr 的特性包括: 高级的全文搜索功能 专为高通量...
solr增量导入更新索引包
Solr 是一个可供企业使用的、基于 Lucene 的开箱即用的搜索服务器。
Solr如何进行索引和搜索 索引:客户端(可以是浏览器可以是java程序)发送post请求到solr服务器,发给solr服务器一个文档(xml、json),就可以进行一个添加索引删除索引、修改索引的操作。 搜索:客户端(可以是...
搜索引擎solr环境配置、分词及索引操作
Apache Solr lucene 搜索模块设计实现 Solr 模块 架构 lucene 搜索
solr测试数据,数据文件
介绍了Solr5.5内部使用的分词原理,有助于开发者自定义自己的分词器时掌握分词的基础知识。
solr配置搜索引擎平台 一、 SOLR搭建企业搜索平台 二.... 三,,,,
tomcat7下实现solr4.3的部署与配置,配置中文服务器。通过solrj实现索引的创建,修改,删除,查询。并实现httpclienct创建、修改索引,检索信息等。
主要讲解了 solr客户端如何调用带账号密码的solr服务器调用,实现添加索引和查询索引,以及分组查询
solr创建索引并查询,希望能够帮助有需要的人。。。
NULL 博文链接:https://ldcsunnyboy.iteye.com/blog/1113251
solr初学者很受用的!讲解了solr怎么创建索引的及其原理,以及查询