sql简单实现全文检索及匹配度排序
2009-04-13 19:22
309 查看
表1:数据表 t_data(id,数据字段)
表2:关键字表t_keyword(id,keyword)
关键字来自数据表或用户输入
表3:索引表 t_index(data_id,key_id)
索引表即数据表与关键字表对应关系表,这个数据我的方法是能过存程过程分析数据表生成。
t_data 1:n t_index
t_keyword 1:n t_index
t_data n:n t_keyword
实现 匹配度排序SQL(匹配关键字越多排越前面)
select *
from t_data s,
(select s.id, count(i.key_id) cc
from t_data s, t_index i, t_keyword k
where ((k.keyword like ‘%福州%’ ) or
(k.keyword like ‘%QQ%’ ) or
(k.keyword like ‘%轿车%’ ))
and i.key_id = k.id
and s.id = i.data_id
group by s.id) s2
where s.id = s2.id
order by s2.cc desc, s.update_time desc
表2:关键字表t_keyword(id,keyword)
关键字来自数据表或用户输入
表3:索引表 t_index(data_id,key_id)
索引表即数据表与关键字表对应关系表,这个数据我的方法是能过存程过程分析数据表生成。
t_data 1:n t_index
t_keyword 1:n t_index
t_data n:n t_keyword
实现 匹配度排序SQL(匹配关键字越多排越前面)
select *
from t_data s,
(select s.id, count(i.key_id) cc
from t_data s, t_index i, t_keyword k
where ((k.keyword like ‘%福州%’ ) or
(k.keyword like ‘%QQ%’ ) or
(k.keyword like ‘%轿车%’ ))
and i.key_id = k.id
and s.id = i.data_id
group by s.id) s2
where s.id = s2.id
order by s2.cc desc, s.update_time desc
相关文章推荐
- 简单内容管理实现:使用JCR对二进制文件的读写和全文检索
- 数据库检索和全文检索的比较(性能,匹配度准确度,相关度排序)
- SQL语句实现按关健字模糊查询,并按匹配度排序
- 站内搜索------仿造Baidu简单实现基于Lucene.net的全文检索的功能
- 火力全开——仿造Baidu简单实现基于Lucene.net的全文检索的功能
- 使用lucene实现简单的全文检索
- SQL2005实现全文检索的步骤是什么?
- 实现按关健字模糊查询,并按匹配度排序的SQL语句
- Oracle_C# 实现 Oracle Text(全文检索)的一个简单例子
- 仿造Baidu简单实现基于Lucene.net的全文检索的功能
- SQL语句实现按关健字模糊查询,并按匹配度排序
- Oracle_C# 实现 Oracle Text(全文检索)的一个简单例子
- Lucene实现简单的全文检索
- 火力全开——仿造Baidu简单实现基于Lucene.net的全文检索的功能
- SQL语句实现按关健字模糊查询,并按匹配度排序
- Oracle_C# 实现 Oracle Text(全文检索)的一个简单例子
- mysql 多表关联查询 实现 全文匹配的 模糊搜索接口 SQL
- 仿造Baidu简单实现基于Lucene.net的全文检索的功能
- 火力全开——仿造Baidu简单实现基于Lucene.net的全文检索的功能