mysql 多字段多关键词根据匹配度排序查找,2千万数据。如何优化sql

lyq027 2018-06-11 05:31:51
一个商品表goods,大概2千万条数据
goods中有字段shop_name和goods_name
现在有个需求,用户输入搜索关键字进行查找,需要按关键字的相关性或匹配度排序
现在关键字用了hanlp的中文分词进行处理,然后进行查找。
比如:小浣熊婴儿爽身粉 分词处理后为:小浣熊 爽身粉 婴儿
关键词不固定,以用户输入进行分词

现在的sql语句为
select * from goods where concat(shop_name,goods_name) regexp '小浣熊|爽身粉|婴儿'

需要的是:商品标题同时匹配关键字高的在前面,店铺名中包含关键词的也排在前面。这需要如何写sql呢
...全文
1963 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_39099280 2018-06-29
  • 打赏
  • 举报
回复
使用正则不走索引,建议你用like,有索引的话会快很多
MW_long 2018-06-28
  • 打赏
  • 举报
回复
原子性,加列, 加索引
或者, 分表吧, 2000w.....
Rotel-刘志东 2018-06-28
  • 打赏
  • 举报
回复
避免全文检索,为了性能考虑。
微风不留尘 2018-06-28
  • 打赏
  • 举报
回复
可以参考一下这个

https://blog.csdn.net/u011734144/article/details/52817766
zjcxc 2018-06-12
  • 打赏
  • 举报
回复
做了分词,数据库里面不是应该用全文检索么?怎么又直接用 正则匹配了?
伟洪winni 2018-06-11
  • 打赏
  • 举报
回复
模糊搜索好像用不了索引

56,875

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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