news表有个字段keys nvarchar(200)
keys为"房地产+城建+监理"时,表示此条新闻含有三个关键字。现在想查询和此条新闻关键字类似的相关新闻如 记录1 keys为 "房地产+城建+监理"
记录2 keys为 "城建+监理"
记录3 keys为 "城建"
记录4 keys为 "新华社"这在检索的时候记录1,记录2,
记录3 都应该能检索到,这是最低要求最好还能实现记录1的优先级大于其它记录,因为它匹配的关键字多。各位大虾,看看怎么弄吧。跪求!

解决方案 »

  1.   

    思路:
    首先查询一条记录,获得该记录的关键词,根据分隔符(或分词算法)分解关键词,再查询含有这些关键词的所有记录,按匹配关键词的个数由多到少排序。在ASP.NET中可以实现,不过效率低。
    在存储过程中实现的话,效率高,不过我不太熟悉Transact-SQL。等有空再试一下。
      

  2.   

    在数据库中写吧,语法是:
    select * from  table  where 字段名 like %+@keys+%
      

  3.   

    思路:
    先用存储过程模糊查询,如:select * from  table  where 字段名 like %+@keys+%
    将查出的结果放在DATASET中,再根据字段KEY的长度进行降利排列