跨表的搜索如何实现啊(综合搜索 首页搜索 跨表搜索 全库搜索)

很訾 2019-06-17 04:42:48
如果在网站首页要挂一个关键词搜索,把各个模块的内容都列出来
比如用户搜"通用"这个关键词,可能是搜到商品列表,也可能搜到用户设置的内容,也可能搜到的是商家列表
各个模块的内容是在不同的表中

并且,我有个表用来指定这样的首页搜索可以搜索哪些表的哪些字段

这样的需求怎么做啊
...全文
306 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
很訾 2019-06-21
  • 打赏
  • 举报
回复
引用 4 楼 森屿lyf 的回复:
1.在你的指定查询表(table)中遍历出来要查的表(比如:new,good,system)三张表,还有其中的字段 2.对每一个表做查询,找出你需要的字段,把它们按照你要展示的形式统一一下,查出的每条数据带一个表的标识(比如说,new表中查到的数据给这条数据加一个字段,比如,来源(from):new) 3.将查到的数据重新组合一下,放在数组里面去,前端遍历输出 4.前端点击进去的时候,根据你查到的ID+表名(from)精准定位到确定的数据 大概思路就是这样子
这确实是一种最后的笨办法,但就是担心涉及表多就很慢了,有没有优化方案
异次元程序员 2019-06-21
  • 打赏
  • 举报
回复
如果小网站的话,你就分开搜索然后聚合结果吧 如果数据量比较大且搜索频繁,就需要一些中间件ES之类的,然后数据都做缓存
程序猿视界 2019-06-21
  • 打赏
  • 举报
回复
引用 5 楼 很訾 的回复:
[quote=引用 4 楼 森屿lyf 的回复:] 1.在你的指定查询表(table)中遍历出来要查的表(比如:new,good,system)三张表,还有其中的字段 2.对每一个表做查询,找出你需要的字段,把它们按照你要展示的形式统一一下,查出的每条数据带一个表的标识(比如说,new表中查到的数据给这条数据加一个字段,比如,来源(from):new) 3.将查到的数据重新组合一下,放在数组里面去,前端遍历输出 4.前端点击进去的时候,根据你查到的ID+表名(from)精准定位到确定的数据 大概思路就是这样子
这确实是一种最后的笨办法,但就是担心涉及表多就很慢了,有没有优化方案[/quote] select * from 表1 as a ,表2 as b where a.id = 1 or b.id = 1 这样子也可以写,但是这样子会产生笛卡尔乘积,你看下可以处理不
程序猿视界 2019-06-20
  • 打赏
  • 举报
回复
1.在你的指定查询表(table)中遍历出来要查的表(比如:new,good,system)三张表,还有其中的字段 2.对每一个表做查询,找出你需要的字段,把它们按照你要展示的形式统一一下,查出的每条数据带一个表的标识(比如说,new表中查到的数据给这条数据加一个字段,比如,来源(from):new) 3.将查到的数据重新组合一下,放在数组里面去,前端遍历输出 4.前端点击进去的时候,根据你查到的ID+表名(from)精准定位到确定的数据 大概思路就是这样子
很訾 2019-06-19
  • 打赏
  • 举报
回复
引用 2 楼 森屿lyf 的回复:
本来写了一点儿思路,后面看看,不太好,库比较小的话还可以,稍微多了马上就不行了,还是等等看有哪位大佬有什么新奇的想法吧
没人回答啊,说来听听呗
程序猿视界 2019-06-19
  • 打赏
  • 举报
回复
本来写了一点儿思路,后面看看,不太好,库比较小的话还可以,稍微多了马上就不行了,还是等等看有哪位大佬有什么新奇的想法吧
很訾 2019-06-18
  • 打赏
  • 举报
回复
这个社区还有人么

20,397

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧