常?的搜索?站,?如百度,?歌。
数据的分类
对于结构化数据,我们?般都是可以通过关系型数据库(mysql,oracle等)的 table 的?式存储和搜索,也可以建?索引。通过b-tree等数据结构快速搜索数据。
对于?结构化数据,也即对全?数据的搜索主要有两种?法:顺序扫描法,全?搜索法。
顺序扫描
全?搜索
什么是全?搜索引擎
根据百度百科中的定义,全?搜索引擎是?前?泛应?的主流搜索引擎。它的?作原理是计算机索引程序通过扫描?章中的每?个词,对每?个词建??个索引,指明该词在?章中出现的次数和位置,当?户查询时,检索程序就根据事先建?的索引进?查找,并将查找的结果反馈给?户的。
搜索引擎
前?
数据类型
全?索引搜索很好的?持?结构化数据的搜索,可以更好地快速搜索?量存在的任何单词?结构化?本。例如 Google,百度类的?站搜索,它们都是根据??中的关键字?成索引,我们在搜索的时候输?关键字,它们会将该关键字即索引匹配到的所有??返回;还有常?的项?中应??志的搜索等等。对于这些?结构化的数据?本,关系型数据库搜索不是能很好的?持。
搜索性能
如果使?mysql做搜索,?如有个player表,这个表有user_name这个字段,我们要查找出user_name以james开头的球员,和含有James的球员。我们?般怎么做?数据量达到千万级别的时候怎么办?
灵活的搜索
索引的维护
?般传统数据库,全?搜索都实现的很鸡肋,因为?般也没??数据库存??本字段,因为进?全?搜索的时候需要扫描整个表,如果数据量?的话即使对SQL的语法进?优化,也是效果甚微。即使建?了索引,但是维护起来也很麻烦,对于 insert 和 update 操作都会重新构建索引。
适合全?索引引擎的场景
简介:常?的搜索引擎,Lucene,Solr,Elasticsearch
Lucene
可扩展的?性能索引
强?,准确,?效的搜索算法
跨平台解决?案
在Apache软件基?会提供的开源软件项?的Apache社区的?持。
但是Lucene只是?个框架,要充分利?它的功能,需要使?java,并且在程序中集成Lucene。需要很多的学习了解,才能明?它是如何运?的,熟练运?Lucene确实?常复杂。
Solr
全?搜索
突出
分?搜索
实时索引
动态群集
数据库集成
NoSQL功能和丰富的?档处理
Elasticsearch
分布式搜索
数据分析
分组和聚合
维基百科
Stack Overflflow
GitHub
电商?站
?志数据分析
商品价格监控?站
BI系统
站内搜索
篮球论坛
参考个人博客: cyz
评论留言