我用PHP做了一个简单的分词搜索。基本功能已经实现。但是遇到一个小问题。我希望在搜索结果中。最匹配的记录排在前面。比如说。我 搜索 ‘中国人民’ 这个关键词,分词后的结果 是  ‘中国’,‘人民’,在搜索结果中有三条记录。ID1 我们中国广大人民群众
ID2 中国人民银行
ID3 人民群众我希望排序 是ID2 中国人民银行ID1 我们中国广大人民群众ID3 人民群众
怎样才能实现这样的排序呢?

解决方案 »

  1.   

    需要有权重,一般根据搜索频度产生,你也可自己设定,就和排序字段一样
      

  2.   

    判断字符串位置,和字符串个数 排序
      

  3.   

    先搜索中国人民,在搜索同时包含中国和人民,再搜索中国,最后搜索人民,每次搜索都要派出前面已搜索得到的结果。
      

  4.   

    1.搜索出所有结果
    2.按照需要进行正则匹配 当然正则规律需要你自己写得够完美