关于搜索search的那点事情,搜索功能多规则排序实现方法!

最近优化了下公司当前现有的项目中搜索功能,

需求中写到,要求对搜索的内容keyword,进行数据库的查询,并对查询出的结果进行多字段的排序。

这其中涵盖两个要求:1,根据keyword进行查询数据库(这个简单)!

                                  2,对查询出来的结果进行多字段的排序。

对于问题2,期初我的想法事通过order 进行排序,最后得到的结果并不是希望的。

但是我觉得肯定是需要通过order 来进行一次排序实现的,最后在网上看到了以下的方法。

https://www.cnblogs.com/qguohog/archive/2009/11/20/1607167.html

此博客中提及到SQLserver中有个函数charIndex()可以实现此功能,但是貌似这个函数不适用在MySQL中,最后

在另一位老鸟的博客中发现MySQL中的Instr()函数可以代替。

最后mysql语句如下:

关于搜索search的那点事情,搜索功能多规则排序实现方法!

从图上可以看出来,满足第一个要求的字段orderid 被加8,如果同时满足第二个要求的再加4;

最后利用的order by 的排序,对orderid进行倒序排列。就得到了我索希望的多字段有序排列展示。


Ps:两位大牛的链接必须要看下,不然小白估计会看不懂,里面将的很通俗易懂。后期请教一个程序员老兵,如果开发的过程中

对页面的合理的布局和内容的展示,一般很少用户会去搜索需要内容,特别是比较普通的网站。本文提及的方法已经完全可以用再百万条数据中使用,如果数据量非常庞大,搜索功能也不会用MySQL去实现。

本文提及的内容纯个人观点,如有不足请指正交流,谢谢!