搜索引擎应用方向:
- 自动补全,联想词
- 个性化推荐
- 点评与简介
- 用户行为分析
- 商品推荐、商品属性
代替like、group 等关键字
搜索引擎特性:
- 高效,针对百万级、亿级数据可以有毫秒级响应。
- 快速部署,接入使用容易。属于一个单独平台。提供接口即可使用。
- 可扩展性,将建立索引和查询处理的运算分不到一个集群内的多台服务器。
搜索引擎的缺陷:
- 底层是NoSql。不是关系型数据库。在关联查询不好。
Solr是基于Lucene的全文搜索服务器。提供了完善的功能管理页面。直接Jason API接口。
分词器
常用分词器: Ik分词器(ik不知道词性) 盘古 庖丁解牛
分词器原理:底层使用字典树来实现。词库一般需要自定义。根据词库来分词。
字典树 isEnd是否为词的尾节点,蓝色节点isEnd=false,红色节点isEnd=true
只存单字,不会存词组。
会存在重复字组,用一些重复字组来提高效率。每次都是从root节点开始。
会加载在内存中。词库大会导致内存消耗大。
分词会有两种模式,最大分词模式/最小密度模式。
Root
北 海 中
京 淀 关 国
人
搜索引擎的算法: 倒排索引算法(相当于新华字典中的目录)。
倒排索引算法
- trem用来存放字组,
- docid是链表结构。一条文章、记录算一个doc。可以直接指向该记录。
- freeq表示排序
Solr安装指引:
- 将扩展包copy到web/lib下
- 配置data文件夹 xmls文件 solr