做电子商务的不可避免的都会遇到价格区间的问题。这,主要显示在搜索的时候,如果你区间设的过大,那几乎把所有产品都列出来了。那和没有分区间没啥分别。因此,还真有一种算法可以解决这个问题(当然也只是基本解决,看上去不是特别的乱而己)。
这是在老王的博客上看到的:
means算法
Web开发中,CRUD做多了难免厌烦,其实还有很多细节可以挖掘,比如很多电子商务网站上都有商品价格区间,都是诸如1000-2000,2000-3000之类定死的,而没有按商品自己的分布规律来划分,此时有一种名为Kmeans的算法可以使用,效果很好,网上有很多现成的代码可以参阅,比如PHP的版本:
kmeanspp
K-Means Clustering in PHP
--EOF--
到百科看了一下,这么解释K-means:k-means 算法接受输入量 k ;然后将n个数据对象划分为 k个聚类以便使得所获得的聚类满足:同一聚类中的对象相似度较高;而不同聚类中的对象相似度较小。聚类相似度是利用各聚类中对象的均值所获得一个“中心对象”(引力中心)来进行计算的。
虽然这样能够处理,老王也给了一个PHP的解决方案,但在实际中,应用的范围并能算是特别大,有时候还是直接手写的。以前的时候,我们是在分类里,直接把几个区间定义好,然后在搜索的时候指定某一分类时,自动调用这个区间。理由是,如果你的产品分的很散,从几块到几千块的都有,这种分类区间,就只能定义到分类上了。
不过上面的算法可以学习一下
<script type="text/javascript" charset="utf-8" src="http://www.neatcn.com/js.php?view=article&cids=1&titlenum=10&titlelimit=50&newwindow=1&cname=0&author=0&orderby=dateline&dateline=0&articleinfo=0"></script>
一一分析路径。。。
view=article&cids=1&titlenum=10&titlelimit=50&newwindow=1&cname=0&author=0&orderby=dateline&dateline=0&articleinfo=0
以上代码表示:
view = article 调用文章
cids=1 分类ID为1,如果没有cids,则代表调用所有分类
titlenum=10 显示为10条
titlelimit=50 标题截取字数为50
newwindow=1 表示是否开新窗:1为开新窗0为不开
cname=0 表示显示文章所在分类:1为显示,0为不显示
author=0 是否显示作者姓名,1为显示,0为不显示
orderby=dateline 表示文章按什么类型排序>> dateline:文章发表的时间 ,views:浏览次数最多的文章,comments:评论次数最多的文章
dateline=0 是否显示文章发表时间:1为显示,0为不显示
articleinfo=0 是否显示文章数据包括浏览次数和评论次数,1为显示,0为不显示
黑黑,尝试一下吧。,。。