avatar
怎样实现这个query# Database - 数据库
n*e
1
说白了就是全文检索的实现.
建立一个索引数据库, 记录所有关键字出现的文章和权重.
{word, paper_id, weight}
问题是怎么用简洁的sql语句实现一个用and/or连接的关键字
串的检索: 例如查找(a and b) or (c and d)...
a,b,c,d为关键字. and关系, 权重相乘, or关系, 权重相加.
最后按权重从大到小的关系将得到的文章排序.
avatar
xt
2

按照SQL92好象没有办法,SQL本身不是Turing complete,
所以不能用来实现很多东西.

【在 n******e 的大作中提到】
: 说白了就是全文检索的实现.
: 建立一个索引数据库, 记录所有关键字出现的文章和权重.
: {word, paper_id, weight}
: 问题是怎么用简洁的sql语句实现一个用and/or连接的关键字
: 串的检索: 例如查找(a and b) or (c and d)...
: a,b,c,d为关键字. and关系, 权重相乘, or关系, 权重相加.
: 最后按权重从大到小的关系将得到的文章排序.

avatar
n*e
3
我已经实现了and连接, 也大致知道or联结怎么实现.
但是两者混合的就没有办法了. 这个问题有一定难度.
google 说他只实现了and. yahoo只有我说的纯and
或者纯or联结. 只有altavista说他什么都实现了,
但是altavista 不会公布算法的. sigh. 我先到此
为止吧.

【在 xt 的大作中提到】
:
: 按照SQL92好象没有办法,SQL本身不是Turing complete,
: 所以不能用来实现很多东西.

avatar
s*c
4

这种事不是SQL的特长,而是属于"INFORMATION RETRIEVAL"领域. 不
过很多数据库厂商已经
引入了"INFORMATION RETRIEVAL"的技术,并集成到某些版本中. 当然
在普通版本中一般是不
支持的. 也许只能通过编程和多个SQL来实现.

【在 n******e 的大作中提到】
: 说白了就是全文检索的实现.
: 建立一个索引数据库, 记录所有关键字出现的文章和权重.
: {word, paper_id, weight}
: 问题是怎么用简洁的sql语句实现一个用and/or连接的关键字
: 串的检索: 例如查找(a and b) or (c and d)...
: a,b,c,d为关键字. and关系, 权重相乘, or关系, 权重相加.
: 最后按权重从大到小的关系将得到的文章排序.

avatar
e*s
5
挺有意思的,能多介绍一点么?或者帮忙给一点
文献好么.
thanks.
avatar
n*e
6
不行的. 搜索引擎必须单独设计算法. 数据库帮不上什么忙.

【在 e***s 的大作中提到】
: 挺有意思的,能多介绍一点么?或者帮忙给一点
: 文献好么.
: thanks.

avatar
m*t
7
well, I think it's still much easier to do things like full text search
within a database engine, instead of having to handle a bunch of text
or xml files.

【在 n******e 的大作中提到】
: 不行的. 搜索引擎必须单独设计算法. 数据库帮不上什么忙.
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。