全文搜索的一些理论总结
?
??? 很长一段时间我对全文搜索都有种错误的认识,认为学习全文搜索没有必要,全文搜索在小公司用不上,在大公司有专业人才。其实这种想法是非常错误的,现在的网站向社交关系发展,用户产生海量内容,如果没有全文搜索根本无法体现出UGD网站的价值。比如蘑菇街支持标签搜索,”瀑布排序“都只能通过搜索引擎实现。
?
全文搜索 的分类
1. 顺序扫描法
2. 逆向索引
全文搜索的处理步骤

1. 抓取数据
2. build index
3. 评分
4. 搜索
全文搜索的重要概念
term
postings
?
一个例子
通过逆向索引实现章鱼台的标签搜索
需求:
???? 章鱼台需要支持对视频添加标签的功能。比如发布一首王菲的歌曲,可以添加王菲,MV这两个标签。通过搜索王菲,MV就可以找到这部视频。
?
实现方式:
? 
?
table = {}def build(msg,docId):if table.has_key(msg):table[msg].extend([docId])else:table[msg] = [docId]build('wangfei',1)build('mv',1)build('suiyanzi',2)build('mv',2)build('zhoujielun',3)build('mv',3)print tableindex: {'wangfei': [1], 'mv': [1, 2, 3], 'suiyanzi': [2], 'zhoujielun': [3]}
?
这里的实现方式比较简单,没有支持or and等搜索方式,也没有考虑分词。
?
参考:http://blog.csdn.net/forfuture1978/article/details/4711308