在全文搜索中默认排序是按照匹配度权值score排序的,权值越大位置越靠前,那为什么有很多时候全词匹配反而不在最前面那,其实很简单因为全词匹配权值也就是100,但是还有很多权值大于100的排在了前面。
比如 搜索“中国”,分词是 中,国,中国。那么有两个值“中国人”,“中国人在中国”这两个那个权值更大那,显然是“中国人在中国”权值更大,所以“中国人在中国”排在前面,全词匹配的“中国人”反在后面。
那如何让全词匹配结果在最前面那。
一个简单的办法,再建一个不分词的字段存储相同值,匹配。
A不分词:“中国人” OR A分词:“中国人”
这样就能排在前面了。不过这么消耗会很大,复杂的就需要自定义权值规则了。