android电商筛选框,像很多网站(比如电商)里的筛选功能一般是如何实现的?

news/2024/5/20 14:17:10/文章来源:https://blog.csdn.net/weixin_42502643/article/details/117722591

bVKrcO?w=1070&h=341

我的思路如下:

数据表:

分类(编号,名称)

筛选项(编号,名称,分类编号,显示顺序) 如"品牌"就是一个筛选项.

筛选点(编号,名称,所属筛选项编号,显示顺序) 如"小米"就是一个筛选点.

商品表(sku编号,分类编号)

商品属性表(sku编号docid,筛选点编号集合content) 【全文检索表】

其中筛选点编号集合content字段存储内容如:

101 102 108 110 230

SQL逻辑:

根据"分类编号"查询"筛选项"表获得"筛选项编号".

根据"筛选项编号"查询"筛选点"表获得"筛选点编号".

上面两点就可以拿到上图筛选条件的界面数据了.

筛选链接的SQL逻辑:

1.筛选链接形如:

list.php?category=分类编号&property=筛选点编号集合

list.php?category=1&property=2_4_5

2.全文检索逻辑:

为了避免MySQL和PG之争,这里以SQLite为例.

商品属性表sku_property(sku编号docid,属性点集合content)

交集:

SELECT docid FROM sku_property

WHERE content MATCH '2 4 5'

ORDER BY docid DESC LIMIT 10 OFFSET 20;

分页:

ORDER BY docid DESC LIMIT 10 OFFSET 20;

排序:

SELECT * FROM sku WHERE id IN ($docids)

ORDER BY 销量|价格|评论数|上架时间 DESC;

其中"销量|价格|评论数|上架时间"都是商品表sku里的字段.

本质上相当于对多个字段进行排序:

ORDER BY id DESC, 评论数 DESC

这就存在一个问题,第二页的商品的评论数可能比第一页的多,这是不符合要求的.

如果要符合要求,可以考虑使用表连接:

select * from sku

inner join sku_property on sku.id = sku_property.docid

where sku.category = 1

and sku_property.content MATCH '2 4 5'

order by sku.评论数 DESC LIMIT 10 OFFSET 20;

3.$_GET['property']筛选点参数验证逻辑:

首先property的元素数量不能多于当前分类的所有筛选项的数量.

注意不是筛选点的数量,因为筛选项里只能单选筛选点.

//筛选点集合:$_GET['property']

$property = array(筛选点_2, 筛选点_4, 筛选点_5);

//防御式编程:如果$property跟"筛选项_1"中的array(筛选点_1, 筛选点_2)的交集大于1,则直接拒绝搜索.

$cat = array(

筛选项_1 => array(筛选点_1, 筛选点_2),

筛选项_2 => array(筛选点_3, 筛选点_4),

筛选项_3 => array(筛选点_5, 筛选点_6),

);

可行性:

京东:

平板电视商品筛选 共 4007个商品

笔记本商品筛选 共 49431个商品 (单条件页面耗时:0.241秒,条件越多,页面耗时越少)

手机商品筛选 共 6152个商品

全文检索中,条件越多(交集),应该是越慢吧?求解惑.

京东不知道是用什么实现的,条件越多,耗时反而越少?

京东是用solr的facet的思路吗?如果是,facet的原理是什么?

SQLite全文检索:

单个关键词,50万条记录,0.03秒(官方测试).

10个关键词,5万条记录,0.03秒(个人简单粗暴的估算,并不准确).

一个商品分类使用一个SQLite数据库来存储商品的属性(筛选点).

如果是用MySQL的话则可以一个分类对应一张全文检索的属性表.

我猜性能应该还是可以接受的.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_806064.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

html css仿app,总有一款适合你-移动端微网站-仿app时间滚动选择效果实现_html/css_WEB-ITnose...

上次给大家介绍了一款 移动端微网站的时间选择插件 ,你还记得么?今天给大家介绍一款新的插件:mobiscroll,为什么上次的可以用,这次还要介绍新的呢?主要因为它十分灵活,可控,总有一种组合适合你。…

NO.120 不懂语言代码,超级菜鸟的建站分享(三):第三方登录设置。

为什么80%的码农都做不了架构师?>>> 上两篇详细的介绍了我使用蝉知免费CMS搭建个人站:先知厨房站的建站流程和界面设置。 不懂语言代码,超级菜鸟的建站分享(二):界面设置 不懂语言代码&#xf…

网站php上传服务器,php文件怎么上传到服务器

PHP中的文件上传通常,文件上传使用的是HTTP的POST方式,首先需要定义HTML表单的enctype属性为"multipart/form-data"。上传页面://HTML文件:支持文件上传的HTML表单上传此文件:在PHP程序中,使用全…

大型网站系统架构的演进(一)(转)

前言 写这篇文章的目的是想用来帮助自己思考和理清头绪,以及如何从一个简单的网站架构演进发展成一个大型网站架构,主要侧重在技术方面 简单的网站 由于我没有做过php,那么就以jsp为例,jsp做网站前端,以电子商务网站为…

php做网站步骤_做网站开发必要的步骤

网站制作一年350元,五站合一,快速建站 ,www.sxjcwzjs.com,只需进入网站右上角注册快速建站即可(需要电脑登录注册),需要联系我吧!电话:13752214574,微信号:m1078582894域名注册网站需…

提高网站权重的方法(留作参考)

2019独角兽企业重金招聘Python工程师标准>>> 一、百度贴吧发贴回贴带上你的链接,但不要以打广告形式,会被k的 我们都知道贴吧是百度旗下的独立品牌,全球最大中文社区。贴吧是一种基于关键词的主题交流 社区,它与搜索紧密结合,准确…

大型网站架构技术一览

大型网站的挑战主要来自庞大的用户,高并发的访问和海量数据,任何简单的业务一旦需要处理数以P计的数据和面对数以亿计的用户,问题就会变得棘手。大型网站架构主要就是解决这类问题。 本文内容大部分来自《大型网站技术架构》,这本书很值得一看…

手机下载小说为php格式的,PHP响应式小说网站整站源码(自适应手机移动端+深度SEO优化自动采集+图文安装教程)...

【温馨提示】源码包解压密码:www.youhutong.com资源描述PHP响应式小说网站整站源码(自适应手机移动端深度SEO优化自动采集图文安装教程)源码介绍:深度SEO优化自动采集的新版本,小说不占内存,存个上万小说不成问题。记住采集以后的…

FCD网站服务器加密,AWS S3 应用 KMS Key 进行服务端数据加密

当我们把数据搬上云端,为了保护敏感数据一定要对数据存储进行加密。而对于 S3 上的数据加密最简单莫过于启用服务端数据加密,可以是 AES-256 或 AWS-KMS。进行了服务端加密码的文件有什么不同呢?首先从 AWS S3 文件列表视图中看到的文件大小与…

利用wordpress添加新页面_wordpress可以做跨境独立站或自建站吗

wordpress可以做跨境独立站或自建站吗做外贸独立站或者自建站的平台海内外还是有很多的,具体市场不同,建站也不同,下面收集的一些wordpress自建站详细信息:1、shopify(最常见)Shopify是世界上最大和最受欢迎的电子商务平台之一。它…

html5网站入门,萌新的HTML5 入门指南

本文由葡萄城技术团队原创并首发作者:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。HTML5的发展改变了互联网技术趋势,前端热度依旧不减,所以对于应用开发人员前端技术也成了必备技能之一…

《淘宝店铺 大数据营销+SEO+爆款打造 一册通》一一2.4 商品分析助力商家打造爆款...

本节书摘来自异步社区出版社《淘宝店铺 大数据营销SEO爆款打造 一册通》一书中的第2章,第2.4节,作者:葛存山 , 耿寿礼,更多章节内容可以访问云栖社区“异步社区”公众号查看。 2.4 商品分析助力商家打造爆款 商品分析提供了店铺商…

整理网站页面CV的《长恨歌》文本,python字符串基础知识实战。

【点击此处跳转笔记正文】Python 官网:https://www.python.org/ Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么简单…… My CSDN主页、My HOT博、My Python 学习个人备忘录好文力荐、 老齐教室 自学并不是什么神秘的…

网站被用户喜爱的秘密 :挖掘关键词背后的用户需求

今天分享的主题是深挖关键词背后的用户需求,从而达到你的网站被越来越多的用户所认可,喜欢。而不是自娱自乐。一般认为关键词的挖掘就是简单的使用5118等工具查询一下,整理出来一批关键词即可。然而正确的过程并非这样简单,我们不…

网站前后台源代码_【出行资讯】超实用2021春运购票台历来了!

1.超实用2021春运购票台历来了!除夕前后的火车票最早可在1月13号前后订票。这些抢票时间要记牢:①12306网站和电话购票6:00—23:30开放;②春运首日1月28日车票12月30日开售;③除夕日2月11日车票1月13日开售,正月初一车…

使用certbot为你的网站免费上https

什么是https 引自维基百科 超文本传输安全协议(英语:Hypertext Transfer Protocol Secure,缩写:HTTPS)是一种网络安全传输协议。在计算机网络上,HTTPS经由超文本传输协议进行通信,但利用SSL/TLS…

网站监测脚本

#!/bin/bash #Author Template #Time 2018-07-01 16:00 url_list( http://www.cnblogs.com/Template/ http://www.baidu.com http://127.0.0.1 ). /etc/init.d/functions function wait(){echo -n "3 秒后执行检查."for ((i0;i<3;i))doecho -n "." ;sle…

2007年国外最佳的网站CSS设计(摘)

2007年国外最佳的网站CSS设计(摘) For those who don’t know, I’m also the guy behind Best Web Gallery and N.Design Studio. In 2006, I started Best Web Gallery as a gallery site where I feature the best CSS and Flash sites. I’m glad that I started the proje…

海洋工作室——网站建设专家:【原】2009.NET年技术大会总结,有图片,说说我理解的技术大会【上】...

阅读建议&#xff1a;一定要好好看完&#xff0c;然后做出你的评价&#xff0c;同时建议您留意高亮部分。 本来打算好好总结一下2009.NET年技术大会的。刚刚看到同事【LanceZhang】的博客&#xff0c;总结的挺快&#xff0c;挺酷的&#xff01;而且总结的全面的&#xff01;详细…