垂直搜索引擎是针对某一个行业的专业搜索引擎,是搜索引擎的细分和延伸,是对网页库中的某类专门的信息进行一次整合,定向分字段抽取出需要的数据进行处理后再以某种形式返回给用户。垂直搜索是相对通用搜索引擎的信息量大、查询不准确、深度不够等提出来的新的搜索引擎服务模式,通过针对某一特定领域、某一特定人群或某一特定需求提供的有一定价值的信息和相关服务。其特点就是“专、精、深”,且具有行业色彩,相比较通用搜索引擎的海量信息无序化,垂直搜索引擎则显得更加专注、具体和深入。
垂直搜索引擎原理图
1、整体思路
整个课程,按照一个从无到有的过程来展开。所有的数据,来自于互联网,用heritrix去抓取。对于抓取的数据,进行去重,去标签,然后利用lucene 和 solr 进行索引和搜索。如下图所示:
整个课程 的最大特点是内容新颖全面而又通俗易懂。对于实际搜索引擎所涉及的各种核心技术都有全面细致的介绍,除了作为搜索系统核心的网络爬虫、索引系统、排序系统、链接分析及用户分析外,还包括网页反作弊、缓存管理、网页去重技术等实际搜索引擎必须关注的技术,同时用相当大的篇幅讲解了云计算与云存储的核心技术原理及实现。
整个课程的另一亮点是:整个项目的构建全部采用最新技术,包括但不限于以下技术:struts 2.3.16 +spring 4.0.1 +hibernate 4.3.1+jquery-easyui 1.3.5+lucene 4.6.0+solr 4.6.0+Heritrix1.14并对其做了二次封装。为了增进学员的理解,课程大量引入形象的图片来讲解算法原理,相信读者会发现原来搜索引擎的核心技术理解起来比原先想象的要简单得多。
一、理论部分:
2.1、搭建heritrix
1.什么是网络爬虫
2.网络爬虫能做什么
3.Heritrix原理
4.Heritrix搭建
2.2、如何进行主题抓取
1.什么是主题抓取
2.主题抓取的意义
3.主题抓取的策略
4.如何用heritrix进行主题抓取
2.3、heritrix优化
1. ELFHash算法
2.关于robot.txt
3.将heritrix打包成工具
2.4、解析html页面
1.java正则表达式
2.基于模板获取网页内容
3.利用htmlparser解析html
2.5、中文分词介绍
1.Lucene自带的分词
2.ICTCLAS
3.IK
4.利用机器学习的算法识别中文文章中的领域词
2.6、网页去重
1.网页去重的意义
2.网页去重的主要方法
3.什么是tf*idf
4.基于指纹算法的网页去重
2.7、Lucene4.6快速索引与搜索
1.如何用lucene创建索引
2.如何用lucene搜索结果
3.Lucene中intfield怎么搜索
4.Lucene的结果高亮显示
2.8、Lucene4.6索引的相关操作
1.创建索引
2.修改索引
3.删除索引
4.索引优化
2.9、Lucene4.6的query、及queryparser
1.TermQuery
2.BooleanQuery
3.TermRangeQuery
4.NumericRangeQuery
5.PrefixQuery
6.PhraseQuery
7.MultiPhraseQuery
8.FuzzyQuery
9.WildcardQuery
10.queryparser
2.10、Lucene的Filter及自定义排序
1.Filter
2.Lucene自带排序及指定权重
3.Lucene自定义排序
2.11、Solr快速索引与搜索
1.什么是solr
2.为什么工程中要使用solr
3.Solr的原理
4.如何在tomcat中运行solr
5.如何利用solr进行索引与搜索
2.12、Solr的查询及Filter
1.solr的各种查询
2.solr的Filter
3.solr的排序
4.solr的高亮
2.13、Solr的facet介绍
1.solr的某个域统计
2.solr的范围统计
2.14、Solrcloud集群搭建
1.zookeeper简介
2.solrcloud集群搭建
2.15、搜索服务的工具封装
1.工厂模式
2.封装搜索服务_lucene
3.封装搜索服务_solr
4.将lucene与solr封装成可以配置的工具,可以支持任何业务系统
二、项目部分:
2.16、项目实战
1.项目需求分析及框架选择
2.Struts 2.3.16介绍
3.Struts 2.3.16整合Spring 4.0.1
4.Spring 4.0.1整合hibernate 4.3.1
5.利用jquery-easyui 1.3.5 做后台管理页面
6.Heritrix 在工程中的运用
7.封装好的搜索框架在工程中的运用
8.Flexpaper模仿百度文库
9.文件上传
10.相关代码编写
11.搜索结果优化
12.项目总结