Code Bye

一条sql优化的问题,烦

有个搜索业务,要全匹配,而且要按照关键词左全匹配排序,例如 搜索 “本人” 字,假设有3条记录分别是 :你爱本人,本人爱你,爱本人所爱,那这个顺序应该是  本人爱你,爱本人所爱,你爱本人,本人目前用的sql语句如下:
select *, case when nickname like “%本人%” then POSITION(“本人” in nickname ) end as namematch from `customer` where `nickname` like “%本人%” order by `namematch`.
这种语句没办法用到索引,用sphinx或其他什么搜索引擎能解决这个问题吗?sphinx貌似不能这样配置
解决方案

25

elasticsearch

25

sphinx 应该可以支持中文全文搜索啊。 不要用LIKE,用AGAINST,详细请直接参考MYSQL官方免费手册。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明一条sql优化的问题,烦