首页 新闻 搜索 专区 学院

SQL 全文索引的准确性问题?

0
悬赏园豆:15 [已解决问题] 解决于 2014-03-28 14:00

SQL SERVER 2008 (非R2)我有一批记录,Content字段做了全文索引,但出现如下的问题,按理说查“学”查出来的记录应该一定包含“学习”的记录,但下面的这个查询的结果有几万条,说明全文检索确实具有一定的命中率,并没有全部查出来。这个有办法精确查询吗(不要漏掉记录)?

SELECT [KEY]
 FROM CONTAINSTABLE(CM_BookPageDetail,(Content),N'学习') A
WHERE A.[KEY] NOT IN
(
 SELECT [KEY]
 FROM CONTAINSTABLE(CM_BookPageDetail,(Content),N'')
)
空明流光的主页 空明流光 | 初学一级 | 园豆:2
提问于:2014-03-26 14:57
< >
分享
最佳答案
0

没有"学习"一定包含"学"这一说的.照这个逻辑 "这个有办法精确查询吗" 这句话一定包含"询吗"这个词了

要想实现你说的这种功能,那样的索引量我都不敢想.

现在的索引都是分词索引.就是把一个句子分成几个词.比如"你好好学习"能分出"学习",但因为学习已经是一个关键词了

所以不会把"学习"再分成"学"和"习"

收获园豆:15
吴瑞祥 | 高人七级 |园豆:29369 | 2014-03-26 16:34

至于查询准确与否的关键在于分词算法.sqlserver的全文检索我不知道能不能改分词算法``

吴瑞祥 | 园豆:29369 (高人七级) | 2014-03-26 16:35

@吴瑞祥: 我和你的理解是一样的。因为我查的资源是需要精确匹配的,如果只能如此实现。那就不需要使用全文索引了。多查几分钟倒影响不大。

空明流光 | 园豆:2 (初学一级) | 2014-03-28 13:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册