首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

全文索引带来的排序有关问题

2012-02-12 
全文索引带来的排序问题我用的是sqlserver2005.有一个百万数据的表,使用全文索引时有这样的问题:查询前8条

全文索引带来的排序问题
我用的是sql   server   2005.
有一个百万数据的表,使用全文索引时有这样的问题:

查询前8条
SELECT   TOP   8   ID   FROM   MyView   WHERE   CONTAINS(Ename, '新闻 ')
得到结果如下:
4
15
68
98
155
187
205
287

查询前16条
SELECT   TOP   16   ID   FROM   MyView   WHERE   CONTAINS(Ename, '新闻 ')
得到结果如下:
315842
315893
374112
221583
…………
338420

就是   TOP   16   的结果里面不包含   TOP   8   的结果,如果强制排序:
SELECT   TOP   8   ID   FROM   MyView   WHERE   CONTAINS(Ename, '新闻 ')   ORDER   BY   Etime   ASC
SELECT   TOP   16   ID   FROM   MyView   WHERE   CONTAINS(Ename, '新闻 ')   ORDER   BY   Etime   ASC
强制排序的话   TOP   16   的结果就包含   TOP   8   的结果。这给分页带来很大的麻烦。

主要问题是:
分页有问题,而且用全文索引也破坏了我聚集索引的排序,所以必须用排序,但用排序的话查询时间就从   13ms   狂增到   1500ms   以上

想请教高手这是全文索引本身的问题还是我的使用有问题啊?我的唯一索引是   ID   ,聚集索引是Etime   ,全文索引建在Ename以及另外两个字段上,简体中文。

如果是全文索引本身的问题,有没有办法优化啊?




[解决办法]
还 真不清楚...
[解决办法]
不知道
[解决办法]
Up。
[解决办法]
全文搜索相关度可用rank排序

如:
SQL= "Select top "& MaxStr &" * From book t Inner Join FreeTextTable(book,(title,class,出版社,作者),'"& Key &"') k on t.xmlid = k.[key] Order By k.rank desc"

热点排行