一条sql优化的问题,烦

xjpcj 2016-07-08 05:38:13
有个搜索业务,要全匹配,而且要按照关键词左全匹配排序,比如 搜索 “我” 字,假设有3条记录分别是 :你爱我,我爱你,爱我所爱,那这个顺序应该是 我爱你,爱我所爱,你爱我,我目前用的sql语句如下:
select *, case when nickname like '%我%' then POSITION('我' in nickname ) end as namematch from `customer` where `nickname` like '%我%' order by `namematch`.
这种语句没办法用到索引,用sphinx或者其他什么搜索引擎能解决这个问题吗?sphinx貌似不能这样配置
...全文
93 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2016-07-08
  • 打赏
  • 举报
回复
sphinx 应该可以支持中文全文搜索啊。 不要用LIKE,用AGAINST,详细请直接参考MYSQL官方免费手册。
xjpcj 2016-07-08
  • 打赏
  • 举报
回复
引用 1 楼 rucypli 的回复:
elasticsearch
solr能实现这样的功能吗?貌似solr不能做这种自定义的排序,elasticsearch可以吧?
rucypli 2016-07-08
  • 打赏
  • 举报
回复
elasticsearch

56,678

社区成员

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

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