首页 新闻 会员 周边 捐助

如何对基于全文索引的关键字搜索结果按相关度进行排序和分页

0
悬赏园豆:10 [已关闭问题] 关闭于 2012-02-02 00:24

1. 当不分页时,搜索出来的没有进行过任何排序的结果是按相关度来排的吗?

2. 假如是的话,怎么分页啊,因为RowNumber是要指定字段的,相关度字段怎么写啊?

3. 如果不是的话,怎么获取相关度?

灰灰狼的主页 灰灰狼 | 初学一级 | 园豆:5
提问于:2012-01-31 14:33
< >
分享
所有回答(4)
0

首先你怎么可以不给分。

第一个问题:没有经过任何排序怎么又会按照相关度排序呢?一般的搜索框架的结果肯定是排序过的,如果你是针对莫一种搜索框架的请告之,比如lucene有相应的score来排序不知道算不算是你说的相关度。

第二个问题:相关度这个概念太泛泛了。

第三个问题:同上。

PS:建议问的时候说明清楚具体的框架和组件,如果是理论上的请具体到理论;

today4king | 园豆:3499 (老鸟四级) | 2012-01-31 16:09

因为此人已经没有圆豆?

支持(0) 反对(0) NetSQL | 园豆:1737 (小虾三级) | 2012-01-31 16:34

1. 我还没对全文索引有深的研究,只是以前零星的看过一些文章,印象不太深了,我理解的相关度的意思是信息与关键字的匹配程度。

2. 没有经过任何排序的意思是没有加order by,比如:

select *
from t1
where freetext(*, '关键字')

这样查出来的一个序列它是按什么排序的?记录存储的物理顺序?还是相关度从高到低排的?

3. 我想像中的答案是会有一种方法可以获取到每条记录的相关度的值,然后可以写到Order by里,然后用row_number去分页。

您的回答我也云里雾里,难道我的问题太傻了?没问到点子上?

哎,没豆受人鄙视真不好意思,我这就去答几个问题赚点钱去。

支持(0) 反对(0) 灰灰狼 | 园豆:5 (初学一级) | 2012-01-31 23:42

@灰灰狼:

对于你的回答我理解为是在sql server中全文搜索的默认排序,你可以检索下相关资料。

默认排序方式在你安装sqlserver的时候就被指定。

比如一般中文版是Chinese_PRC_CI_AI_WS

前半部份:指UNICODE字符集,Chinese_PRC_指针对大陆简体字UNICODE的排序规则。
排序规则的后半部份即后缀 含义:
  _BIN 二进制排序
  _CI(CS) 是否区分大小写,CI不区分,CS区分
  _AI(AS) 是否区分重音,AI不区分,AS区分   
  _KI(KS) 是否区分假名类型,KI不区分,KS区分 
    _WI(WS) 是否区分宽度 WI不区分,WS区分 区分大小写:如果想让比较将大写字母和小写字母视为不等,请选择该选项。
区分重音:如果想让比较将重音和非重音字母视为不等,请选择该选项。如果选择该选项,
         比较还将重音不同的字母视为不等。
区分假名:如果想让比较将片假名和平假名日语音节视为不等,请选择该选项。
区分宽度:如果想让比较将半角字符和全角字符视为不等,请选择该选项

希望能帮助到你,建议使用lucene会快很多很多。

支持(0) 反对(0) today4king | 园豆:3499 (老鸟四级) | 2012-02-01 14:40

@今昭: 你说的是order by子句的排序规则吧,我想知道的是

select *
from t1
where freetext(*, '关键字')

没有order by的时候,是按什么排的序?

支持(0) 反对(0) 灰灰狼 | 园豆:5 (初学一级) | 2012-02-01 20:50

@灰灰狼: 这个不是order by的规则,就是“默认”的规则,也就是你没有指定order by的时候的规则。

支持(0) 反对(0) today4king | 园豆:3499 (老鸟四级) | 2012-02-01 22:45

@今昭: 明儿我还是自己查查资料吧,我觉得全文索引应该有个相关度的概念,就是说跟关键字的匹配程度,相关程度,然后有那么一种SQL的写法可以得到代表这种程度的数值,然后能按这个值来排序。知识结构完全空白,不了解啥框架,现在找下lucene的资料睡觉啦。

支持(0) 反对(0) 灰灰狼 | 园豆:5 (初学一级) | 2012-02-01 23:43

@灰灰狼: sql server只是关系型数据库,全文搜索不是它的强项。

支持(0) 反对(0) today4king | 园豆:3499 (老鸟四级) | 2012-02-02 10:21
0

回楼主话,你的问题却没问到点子上,导致别人的回答是云里雾里

咆哮的野猪 | 园豆:60 (初学一级) | 2012-02-01 10:38
0

已解决,用FREETEXTTABLE

灰灰狼 | 园豆:5 (初学一级) | 2012-02-02 00:22
0

怎么解决这个排序问题的???求分享

Rookier | 园豆:652 (小虾三级) | 2013-11-13 17:36
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册