欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

类似中关村在线,或者太平洋汽车 多属性搜索是怎么做的,怎样的思路

程序员文章站 2022-04-20 10:20:23
...
本帖最后由 airukongqi4321 于 2013-11-03 11:44:21 编辑

多属性搜索

http://detail.zol.com.cn/notebook_index/subcate16_0_list_4000_s1227_1_1_0_1.html 中关村在线
http://price.pcauto.com.cn/price/q-p2-k75.html 太平洋汽车

点击某项属性,没有产品的某些属性就会相应的变灰不可用状态,
感问 要实现这样的功能是怎样的思路,如何做。。。
分数不多见谅了,呵呵....

回复讨论(解决方案)

这个之前有人问过
两种方案:
1是用javascript根据选择的变量组合成一个url,这种方案需要先选择,点击一个按钮后打开网页(操作有点像提交)
2是php根据每种参数写一个链接,这种方案每点击一个参数就刷新网页,刷新网页时就把参照已经选择的多个条件把所有链接重新计算输出

2的变形方案是ajax

view-source:http://detail.zol.com.cn/notebook_index/subcate16_0_list_4000_s1227_1_1_0_1.html


品牌
价格
不限 1999元以下 2000-2499元 2500-2999元很明显,连接是由服务端产生的

view-source:http://price.pcauto.com.cn/price/q-p2-k75.html
价格:
5万以下5-8万8-10万10-15万15-20万20-25万......
级别:
微型车小型车紧凑型车中型车中大型车
同样也是如此

常用的思路还是后台整合在url里面输出到前台吧。

ajiax 后台处理数据

最简单方式ajax 获取数据输出

其实问题的关键还是:“怎么通过某一事物的单一属性,判断其他属性是否存在”;

如果是 每点一次条件,都会到数据库里取一遍的话,这实现起来不难,比如点了一下

“5-8万” 这个条件,最笨的方法无非就是在后台
select * from auto_detail where market_price >= 50000 and market_price (假设auto_detail是一个存储了所有厂商的所有车型的详细资料表)

返回的结果可能有几百条,再对结果循环一遍,分别一一将返回集里的auto_grade,car_brand....(略);都存入一个二维数组里。

那“所有汽车级别,汽车品牌。。”等等这些数据哪来呢?无非再select distinct auto_grade from xxx 而已。
做好点的话把所有这种供对比的,不必经常更新的数据放缓存里面,就不用每次都去数据库查一遍了。

然后就简单了,分别判断一下,auto_grade里那些属性是有的,那些属性是没有的,再返回一个数组给jQuery,控制页面把样式改了就可以了。

以上是最笨的做法,权当抛砖引玉

这个是专用企业级搜索引擎!

查solr, sphix 和lucene!

类似中关村在线,或者太平洋汽车 多属性搜索是怎么做的,怎样的思路

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频


网友评论

文明上网理性发言,请遵守 新闻评论服务协议

我要评论
  • 类似中关村在线,或者太平洋汽车 多属性搜索是怎么做的,怎样的思路
  • 专题推荐

    作者信息
    类似中关村在线,或者太平洋汽车 多属性搜索是怎么做的,怎样的思路

    认证0级讲师

    推荐视频教程
  • 类似中关村在线,或者太平洋汽车 多属性搜索是怎么做的,怎样的思路javascript初级视频教程
  • 类似中关村在线,或者太平洋汽车 多属性搜索是怎么做的,怎样的思路jquery 基础视频教程
  • 视频教程分类
    相关标签: 类似中关村在线,或者太平洋汽车 多属性搜索是怎么做的,怎样的思路

    上一篇: javascript实现input file上传图片预览效果

    下一篇: Joomla使用Apache重写模式的方法_PHP

    推荐阅读