电子商务网站的商品搜索一般是咋实现的
建议选择:Elasticsearch.org Open Source Distributed Real Time Search \u0026amp; AnalyticsElasticSearch是一个基于Lucene构建的开源,分布式,RESTful搜索引擎;设计用于云计算;能够达到实时搜索,稳定,可靠,快速。
ElasticSearch在近一年当中,有翻天覆地的变化,据我了解:
2012年11月,获得1000万美元的融资;
2013年02月,获得2400万美元的融资;
2013年初,亲爱的GitHub抛弃了Solr,取用了ElasticSearch 来做PB级的搜索;
ElasticSearch一些国内外的优秀案例:
Github:“GitHub使用ElasticSearch搜索20TB的数据,包括13亿文件和1300亿行代码”
Foursquare:“实时搜索5千万地理位置信息?Foursquare每天使用ElasticSearch做到了”
ElasticSearch的一些概念:
集群 (cluster)
在一个分布式系统里面,可以通过多个elasticsearch运行实例组成一个集群,这个集群里面有一个节点叫做主节点(master),elasticsearch是去中心化的,所以这里的主节点是动态选举出来的,不存在单点故障。
在同一个子网内,只需要在每个节点上设置相同的集群名,elasticsearch就会自动的把这些集群名相同的节点组成一个集群。节点和节点之间通讯以及节点之间的数据分配和平衡全部由elasticsearch自动管理。
在外部看来elasticsearch就是一个整体。
节点(node)
每一个运行实例称为一个节点,每一个运行实例既可以在同一机器上,也可以在不同的机器上.所谓运行实例,就是一个服务器进程.在测试环境内,可以在一台服务器上运行多个服务器进程,在生产环境建议每台服务器运行一个服务器进程
索引(index)
这里的索引是名词不是动词,在elasticsearch里面支持多个索引。类似于关系数据库里面每一个服务器可以支持多个数据库一样。在每一索引下面又支持多种类型,类似于关系数据库里面的一个数据库可以有多张表。但是本质上和关系数据库有很大的区别。这里暂时可以这么理解
分片(shards)
把一个索引分解为多个小的索引,每一个小的索引叫做分片。分片后就可以把各个分片分配到不同的节点中
副本(replicas)
【电子商务网站的商品搜索一般是咋实现的】 每一个分片可以有0到多个副本,每个副本都是分片的完整拷贝,可以用来增加速度,同时也可以提高系统的容错性,一旦某个节点数据损坏,其他节点可以代替他.
■网友
开源的可以使用Lucene, 像京东商城等应该都是,只是京东可能使用的是Lucene的.Net版本。而像淘宝那样,是自己开发了。
■网友
用Lucene很好地。
■网友
这个问题我也非常想知道的,同问
■网友
全文搜索。
推荐阅读
- 社保卡■看病买药忘带社保卡千万别着急!快打开“我的南京”用电子社保卡
- 货币等各类金融产品彻底电子化会到来么
- 当下电脑城/电子城/数码城的业务日益萧条,作为普通的创业者该怎样转变思路从而突围
- 长三角|@运输企业:这5本交通证照电子化,扫码走遍长三角
- 为啥无听过电子钱咭被不法分子破解?
- 某公司推出他们的3C产品,如果你是这个公司的电子商务运营主管,前期的运营你打算怎样开展这些工作
- 江苏省|文明乘车!南京地铁提示电子设备勿外放声音
- 未来电子商务的爆发点在哪里
- 青年|电子警察开始执法,开车系了安全带被扣2分,车主无语了
- 电子信息工程考研有啥偏软件类的专业可以报考
