随笔分类 - 信息检索学习
信息检索
摘要:github地址: https://github.com/hongfuli/elasticsearch analysis jieba 基于 "jieba" 的 "elasticsearch" 中文分词插件。 集成到ElasticSearch ======= 把release/elasticsearc
阅读全文
摘要:最近准备写一个搜索的系列文章,主要是github上面写作,这里提供下汇集链接: 1. "搜索组件基本组成" 1. "常用查询方法" 1. "相关算法介绍:TF IDF/BM25"
阅读全文
摘要:今天学习的是第6章,关于词项权重方面的,重要性还是很大的。在电商搜索应用中,用到这的地方很多。比如我们搜索商品时,商品的属性很多,如“标题”,“描述”。我们要匹配的关键字只要满足这些属性之一就返回,这时候我们一般对不同属性不会一视同仁,比如“标题”中匹配的重要性就要比“描述”内容更大,更应该排在前面...
阅读全文
摘要:在前面几篇文章中都是在讲倒排索引的结构, 及合并优化方法. 这篇博文里更多谈下怎么根据输`输入查询参数`来定位到倒排记录表的指针. 其实这跟MySQL中对`VARCHAR`类型加索引后, 然后基于该字段查询的原理一样, 都是可以基于B-Tree的经典数据结构来快速定位. MySQL中基于内存表还可以...
阅读全文
摘要:在本系列的前面一篇文章中, 我们介绍了中文分词. 因为"中文"这门语言主要是"词语"表达的语言, 一个句子中间没有空格停顿, 所以我们在分析处理一段话, 或者一篇文章时, 总是把每一个句中根据最合适的语境拆分成一系列的短语, 其实这个过程就是我们所说的中文分词. 但是在有些语言中我们并不能总是把一句...
阅读全文
摘要:在前面一篇介绍 倒排索引 的文章中我们知道, 两个关键字的合并操作的时候复杂度是θ(N), 如果在合并操作时遇到最极端的情况, 所扫描和比较的次数是两个列表集合的所有元素个数之和, 即是线性增长的, 这在数据量特别大的时候是很低效的. 我们还是看一下两个集合的合并操作代码示例:a = [1, 2, ...
阅读全文
摘要:在前一篇中的倒排索引介绍中, 我们了解到要把一篇文档(或者在电商业务中一个商品相关信息)放入索引系统中, 要对该文档的关键词进行提取分析出来后建立相应的倒排列表. 现在问题来了, 我们怎么从一篇文档中抽出所有以前可能要索引的词. 比如一个显示器的标题是 "三星显示器S22D300NY 21.5寸 L...
阅读全文
摘要:前记:之前做过一个在线电子商城的项目,初次接触到搜索检索技术,用lucene + compass做的商品和商家信息搜索,感觉真的很强大。海量的商品,非结构化的数据,复杂的查询条件,如果不用搜索引擎技术,用传统的关系型数据库去做查询,基本上是不可能实现(当然,现在很多关系型数据库开始内置搜索引擎,全文检索,就是弥补这方面的不足)。在做国际机票的运价系统设计时,针对大量机票政策文件,复杂的综合机票查询条件(缺口,联程.....几十个查询条件),如果在秒级时间内快速查询出满足条件的航班信息,都是离不开搜索技术。现代互联网技术的飞速发展,大数据时代来临,从海量数据中查询,分析,挖掘有用信息,是计算机技
阅读全文