搜索引擎的索引 1.单词——文档矩阵 单词-文档矩阵是表达两者之间所具有的一种包含关系的概念模型,图3-1展示了其含义。图3-1的每列代表一个文档,每行代表一个单词,打对勾的位置代表包含关系。 图3-1 单词-文档矩阵 从纵向即文档这个维度来看,每列代表文档包含了哪些单词,比如文档1包含了词汇1和词 ...
分类:
其他好文 时间:
2016-08-26 10:31:56
阅读次数:
124
1. 设计 @ 索引创建 采用【动态索引】的策略,可以实现实时搜索的功能; 动态索引的实现需要“倒排索引”,“临时索引”和“已删除文档列表”,其中“倒排索引”存储在磁盘文件中,“临时索引”存储在内存中; 思路: 当系统发现有新文档进入时,立即将其加入临时索引中;有文档被删除时,则将其加入删除文档队列 ...
分类:
其他好文 时间:
2016-08-19 20:52:03
阅读次数:
147
一 整体架构 整个搜索引擎网站为一个Web应用平台,采用LAMP架构(Linux + Apache + MySQL + PHP); (链接:LAMP架构的搭建) 其中PHP负责网站的前端,后端使用C++编写; 服务器后台包括倒排索引模块和搜索模块; 类似于: 二 开源工具的确定 1. Muduo网络 ...
分类:
其他好文 时间:
2016-08-19 20:37:19
阅读次数:
178
全文索引MongoDB有一个特殊的索引用在文档中搜索文本,之前的博客都是用精确匹配来查询字符串,这些技术有一定的限制。在搜索大块文本的速度非常慢,而且无法处理自然语言礼节的问题。全文本索引使用的是“倒排索引”的思想来做的,和当前非常开源的lucene(全文检索)项目是一..
分类:
数据库 时间:
2016-08-11 16:05:50
阅读次数:
223
转自:http://www.open-open.com/lib/view/open1348033848724.html Lucene的分析过程 回顾倒排索引的构建 注:详细文档->倒排索引的理论过程见词项词典及倒排记录表 分析操作的使用场景 1.如上,倒排索引的构建阶段 2.针对自由文本的查询阶段 ...
分类:
Web程序 时间:
2016-07-02 18:58:16
阅读次数:
375
针对海量数据的处理,可以使用的方法非常多,常见的方法有Hash法、Bit-map法、Bloom filter法、数据库优化法、倒排索引法、外排序法、Trie树、堆、双层桶法以及MapReduce法。...
分类:
其他好文 时间:
2016-06-21 06:58:03
阅读次数:
229
突出的优点 突出的优点 Lucene作为一个全文检索引擎,其具有如下突出的优点: (1)索引文件格式独立于应用平台。Lucene定义了一套以8位字节为基础的索引文件格式,使得兼容系统或者不同平台的应用能够共享建立的索引文件。 (2)在传统全文检索引擎的倒排索引的基础上,实现了分块索引,能够针对新的文 ...
分类:
Web程序 时间:
2016-06-20 18:31:30
阅读次数:
195
映射mapping机制用于进行字段类型确认,将每个字段匹配为一种确定的数据类型(string, boolean, date);
分析analysis机制用于进行全文文本Full Text的分词,以建立供搜索用的倒排索引Inverted index.
上边做个总结,后续学习之后就明白了.先看一个查询现象:
在索引中有12个tweets,只有一个包含日期2014-09-15,但是我们看看下面查询...
分类:
其他好文 时间:
2016-05-23 15:18:27
阅读次数:
209
中文分词工具:结巴分词
github地址:https://github.com/fxsjy/jieba一、分词功能
精确模式(默认):试图将句子最精确地切开,适合文本分析;
全模式,把句子中所有的可以成词的词语都扫描出来,但是不能解决歧义;
搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,该方法适合用于搜索引擎构建倒排索引的分词,粒度比较细。注意:jieba.cut以及jieba.c...
分类:
编程语言 时间:
2016-05-22 12:32:43
阅读次数:
268