常规的搜索一般使用like执行模糊搜索,这种搜索有个缺陷,一旦搜索内容里面有一个错的就会导致搜索失败。
有没有一种实现可以容错的且按照相似度排序的方法呢?类似百度 google那样的。
经过自己的测试发现使用分词结合排序的order by like 可以实现。
我直接给出例子sql的吧
比如搜索内容表content 里面的标题title 分词是 php 和 数组
select * FROM content where title like '%php%' or title like '%数组%' order by ( 1+(title like '%php%' ) + ( title like '%数组%' ) ) desc
最终排序是按照like的值相加的结果来排序,也就是相似值叠的越大越靠前。
至于如何给搜索内容分词,可以使用专门的分词类 或者直接按字和空格拆分也可以。
标签:like,title,order,搜索,度来,排序,分词 From: https://www.cnblogs.com/smxjue/p/17905018.html