SlideShare a Scribd company logo
1 of 27
搜索引擎
申艳超
大纲
一 什么是搜索引擎
二 搜索运行基本原理
三 影响搜索效果的主要因素
一 什么是搜索引擎
搜索引擎基本构成
搜索
收集
数据
文件
DB
web
人工录
入
索引文档
索引
文件
Query UI展现
Google
二 搜索运行基本原理
空间换时间
广义上的索引
倒排索引
DocID 内容
1 谷歌地图之父跳槽Facebook
2 谷歌地图之父加盟Facebook
3 谷歌地图创始人拉斯离开谷歌加盟Facebook
4 谷歌地图之父跳槽Facebook与Wave项目取消有关
5 谷歌地图之父拉斯加盟社交网站Facebook
单词ID 单词 文档频率DF 倒排列表 PostingList (DocID;TF;<POS>)
1 谷歌 5 (1;1;<1>),(2;1;<1>),(3;2;<1;6>),(4;1;<1>),(5;1;<1>)
2 地图 5 (1;1;<2>),(2;1;<2>),(3;1;<2>),(4;1;<2>),(5;1;<2>)
3 之父 4 (1;1;<3>),(2;1;<3>),(4;1;<3>),(5;1;<3>)
4 跳槽 2 (1;1;<4>),(4;1;<4>)
5 Facebook 5 (1;1;<5>),(2;1;<5>),(3;1;<8>),(4;1;<5>),(5;1;<8>)
6 加盟 3 (2;1;<4>),(3;1;<7>),(5;1;<5>)
7 创始人 1 (3;1;<3>)
8 拉斯 2 (3;1;<4>),(5;1;<4>)
9 离开 1 (3;1;<5>)
10 与 1 (4;1;<6>)
单词词典
0
1
2
3
4
5
6
7
8
9
10
11
…
23489
word1 word2 word3
word4 word5
word6 word7 word8
word9
word10 word11 word12
Posting
list
……
……
……
……
……
……
……
……
……
……
搜索布尔模型
word1 DF
word2 DF
51
96
9917
50
49 61 75 96
494818 20115
word1 AND word2: 5, 49, 96
word1 OR word2: 1, 5, 11, 17, 18, 20, 48, 49, 50, 61, 75, 96, 99
lucene索引格式
field
word
Term
lucene实现
010001000101000100010000…….11000000001001
001001000010000100010010…….10000110000001
搜索的世界: 字符串
数字范围查询
123,123456,222
000123, 000222, 123456
Too Many
Clause Error
数字转换与搜索
空间搜索
空间搜索-GeoHash
三 影响搜索效果的主要因素
评分机制
中文分词
中外科学名著
结婚的和尚未结婚的
我知道你不知道我知道你不知道我知道你不知道
新词: 三聚氰胺、给力、喜大普奔…
专有名词: 小区名、公司名、姓名
Lucene分词
charFilters
Tokenizer
Filters
按char过滤或转换
切分成多个token
按token过滤或转换
同义词搜索
拼音搜索
回顾
搜索引擎基本构成
高效搜索的内部运行机制 - 索引
数字、地理位置巧妙的转换方案
影响搜索效果的因素- 评分、分词、同义词、拼音
参考
http://lucene.apache.org/
https://book.douban.com/subject/7006719/
https://en.wikipedia.org/wiki/Well-known_text
http://dataknocker.github.io/2014/04/11/solr%E7%A9%BA%E9%97%B4%E7%B4%A2
%E5%BC%95%E5%8E%9F%E7%90%86%E5%8F%8A%E6%BA%90%E7%A0%81%E5%8
8%86%E6%9E%90/
https://www.elastic.co/blog/frame-of-reference-and-roaring-bitmaps
http://geohash.gofreerange.com/
http://www.cnblogs.com/yjf512/p/4860134.html
Thanks!

More Related Content

Similar to Search Engine Principle

使用GoogleAppEngine建立个人信息中心
使用GoogleAppEngine建立个人信息中心使用GoogleAppEngine建立个人信息中心
使用GoogleAppEngine建立个人信息中心Du Yamin
 
Alluxio's Use and Practice in Didi
Alluxio's Use and Practice in DidiAlluxio's Use and Practice in Didi
Alluxio's Use and Practice in DidiAlluxio, Inc.
 
廣宣學堂Python金融爬蟲原理班 20170416
廣宣學堂Python金融爬蟲原理班 20170416廣宣學堂Python金融爬蟲原理班 20170416
廣宣學堂Python金融爬蟲原理班 20170416Paul Chao
 
淘宝网前端应用与发展
淘宝网前端应用与发展淘宝网前端应用与发展
淘宝网前端应用与发展taobao.com
 
Kaolaso chn
Kaolaso chnKaolaso chn
Kaolaso chn36Kr.com
 
#3月瘋行動 打造行動網站,掌上流量一網打盡
#3月瘋行動 打造行動網站,掌上流量一網打盡#3月瘋行動 打造行動網站,掌上流量一網打盡
#3月瘋行動 打造行動網站,掌上流量一網打盡AdWordsGreaterChina
 
Docker + CI pipeline 的高效率 ChatBot 開發方法
Docker + CI pipeline 的高效率 ChatBot 開發方法Docker + CI pipeline 的高效率 ChatBot 開發方法
Docker + CI pipeline 的高效率 ChatBot 開發方法Philip Zheng
 
筆記 - Google 的產品與服務副本
筆記 - Google 的產品與服務副本筆記 - Google 的產品與服務副本
筆記 - Google 的產品與服務副本maolins
 
筆記 - Google 的產品與服務副本
筆記 - Google 的產品與服務副本筆記 - Google 的產品與服務副本
筆記 - Google 的產品與服務副本maolins
 
introduction of web 2.0
introduction of web 2.0introduction of web 2.0
introduction of web 2.0soboring
 
Using google appengine_final2
Using google appengine_final2Using google appengine_final2
Using google appengine_final2Wei Sun
 
選擇正確的Solution 來建置現代化的雲端資料倉儲
選擇正確的Solution 來建置現代化的雲端資料倉儲選擇正確的Solution 來建置現代化的雲端資料倉儲
選擇正確的Solution 來建置現代化的雲端資料倉儲Herman Wu
 
在雲端上啜飲爪哇
在雲端上啜飲爪哇在雲端上啜飲爪哇
在雲端上啜飲爪哇建興 王
 
猫粮快报
猫粮快报猫粮快报
猫粮快报tbmallf2e
 
網路2.0時代情報蒐集術
網路2.0時代情報蒐集術網路2.0時代情報蒐集術
網路2.0時代情報蒐集術基欽 劉
 
2009/05/25第一學期期中報告
2009/05/25第一學期期中報告2009/05/25第一學期期中報告
2009/05/25第一學期期中報告bozhang1220
 
1.[web security share]google_hacking
1.[web security share]google_hacking1.[web security share]google_hacking
1.[web security share]google_hackingMike Ching
 
价值中国网站开发、管理经验探讨、分享、交流
价值中国网站开发、管理经验探讨、分享、交流价值中国网站开发、管理经验探讨、分享、交流
价值中国网站开发、管理经验探讨、分享、交流hizhubo
 
Seo4sales20080103 網路行銷SEO
Seo4sales20080103 網路行銷SEOSeo4sales20080103 網路行銷SEO
Seo4sales20080103 網路行銷SEOHui-kang Tang
 

Similar to Search Engine Principle (20)

使用GoogleAppEngine建立个人信息中心
使用GoogleAppEngine建立个人信息中心使用GoogleAppEngine建立个人信息中心
使用GoogleAppEngine建立个人信息中心
 
ChatBot
ChatBotChatBot
ChatBot
 
Alluxio's Use and Practice in Didi
Alluxio's Use and Practice in DidiAlluxio's Use and Practice in Didi
Alluxio's Use and Practice in Didi
 
廣宣學堂Python金融爬蟲原理班 20170416
廣宣學堂Python金融爬蟲原理班 20170416廣宣學堂Python金融爬蟲原理班 20170416
廣宣學堂Python金融爬蟲原理班 20170416
 
淘宝网前端应用与发展
淘宝网前端应用与发展淘宝网前端应用与发展
淘宝网前端应用与发展
 
Kaolaso chn
Kaolaso chnKaolaso chn
Kaolaso chn
 
#3月瘋行動 打造行動網站,掌上流量一網打盡
#3月瘋行動 打造行動網站,掌上流量一網打盡#3月瘋行動 打造行動網站,掌上流量一網打盡
#3月瘋行動 打造行動網站,掌上流量一網打盡
 
Docker + CI pipeline 的高效率 ChatBot 開發方法
Docker + CI pipeline 的高效率 ChatBot 開發方法Docker + CI pipeline 的高效率 ChatBot 開發方法
Docker + CI pipeline 的高效率 ChatBot 開發方法
 
筆記 - Google 的產品與服務副本
筆記 - Google 的產品與服務副本筆記 - Google 的產品與服務副本
筆記 - Google 的產品與服務副本
 
筆記 - Google 的產品與服務副本
筆記 - Google 的產品與服務副本筆記 - Google 的產品與服務副本
筆記 - Google 的產品與服務副本
 
introduction of web 2.0
introduction of web 2.0introduction of web 2.0
introduction of web 2.0
 
Using google appengine_final2
Using google appengine_final2Using google appengine_final2
Using google appengine_final2
 
選擇正確的Solution 來建置現代化的雲端資料倉儲
選擇正確的Solution 來建置現代化的雲端資料倉儲選擇正確的Solution 來建置現代化的雲端資料倉儲
選擇正確的Solution 來建置現代化的雲端資料倉儲
 
在雲端上啜飲爪哇
在雲端上啜飲爪哇在雲端上啜飲爪哇
在雲端上啜飲爪哇
 
猫粮快报
猫粮快报猫粮快报
猫粮快报
 
網路2.0時代情報蒐集術
網路2.0時代情報蒐集術網路2.0時代情報蒐集術
網路2.0時代情報蒐集術
 
2009/05/25第一學期期中報告
2009/05/25第一學期期中報告2009/05/25第一學期期中報告
2009/05/25第一學期期中報告
 
1.[web security share]google_hacking
1.[web security share]google_hacking1.[web security share]google_hacking
1.[web security share]google_hacking
 
价值中国网站开发、管理经验探讨、分享、交流
价值中国网站开发、管理经验探讨、分享、交流价值中国网站开发、管理经验探讨、分享、交流
价值中国网站开发、管理经验探讨、分享、交流
 
Seo4sales20080103 網路行銷SEO
Seo4sales20080103 網路行銷SEOSeo4sales20080103 網路行銷SEO
Seo4sales20080103 網路行銷SEO
 

Search Engine Principle

Editor's Notes

  1. 那么多记录,为什么那么快?
  2. 引出索引的概念
  3. 动词OR名词 总之,加快搜索效率都可以称为索引
  4. 哈希加链表 B树(B+树) TRIE树
  5. skipList 跳表 https://www.elastic.co/blog/frame-of-reference-and-roaring-bitmaps 2^31-1 = 2,147,483,647
  6. 引出数字怎么办~ 如何快速查询的呢
  7. 例子以10进制:250314 Int 32bit Float IEEE754 32bit Long 64bit Double IEEE754 64bit Date 转为数字
  8. GeoHash 11位能精确到1m 笛卡尔分层模型 20层能精确到1m
  9. Geohash: 经纬度不断对半拆分,base32编码
  10. coord(q,d) 评分因子,基于文档中出现查询项的个数。越多的查询项在一个文档中,说明文档的匹配程度越高。 queryNorm(q)查询的标准查询 tf(t in d) 指项t在文档d中出现的次数frequency。具体值为次数的开根号。 idf(t) 反转文档频率, 出现项t的文档数docFreq t.getBoost 查询时候查询项加权 norm(t,d) 长度相关的加权因子 越多罕见的词项被匹配上,文档分数越高 文档字段越短,文档分数越高 权重越高(无论是索引期还查询期赋予的权重值),文档得分越高 TFIDFSimilarity BM25Similarity