日期:2014-05-18  浏览次数:20627 次

sql如何查询一条新闻的相关新闻
一直没注意过这个问题,以为用它的几个关键词,and或or查询即可。

但真正弄的时候才发现,这样的方法太不准确了,比方一条新闻有四个关键词,全用and则可能取不到相关的,全用or又太多了。问了个朋友,有提到优先级和相关的函数,他也不是很懂。我理解了下,大到是应该先取同时满足四个词and的排在前面,然后是满足任意三个词and的,依次...

如果手动处理还需要解决几个关键词的组合问题,再依次查询;这样做效率估计是比较低的,所以在此向高手请教。是不是有专门的解决方法?先行谢过了。

------解决方案--------------------
这个要看你的需求的了

需求高可以非常复杂,关系到语意分析
单纯从数据库考虑的话,你可以top一定数量,条件是or关系,用一个case when排序,四个and的排最前面,三个and的其次,以此类推。


------解决方案--------------------
正常情况新闻的存储是有关键词字段的。

例如有4个关键词,社会新闻,民生,物价,蔬菜。
例如其他新闻也是这4个,就是相关度100%。

如果有3个一样的,相关度就是75%

得到相关度>1 的,然后按照相关度排序即可。