首页
新闻
论坛
群组
Blog
文档
下载
读书
Tag
网摘
搜索
.NET
Java
游戏
视频
人才
外包
培训
数据库
书店
程序员
欢迎您:
游客
| 退出
| 登录
注册
帮助
我的帖子
我参与的帖子
我的空间
我的网摘
CSDN
CSDN社区
.NET技术
.NET技术前瞻
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
生成帖子
置顶
推荐(加精)
取消推荐(加精)
锁定帖子
移动帖子
取消引用
结帖去...
管理菜单
页面风格切换
标准风格
老版本论坛
请教高手“如何在SQL Server 2005里面建立自己的中文索引”
[无满意答案结帖,结帖人:mawenhu]
加为好友
发送私信
在线聊天
mawenhu
该用户很懒,没有设置昵称
等级:
可用分等级:
短工
总技术分:
0
总技术分排名:
318040
结帖率:
100.00%
发表于:
2008-08-22 10:39:57
楼主
最近在做一件数据库查询优化方面的事情,由于我们的数据库大部分表字段都是中文的,而且数据量有200多万条,查询速度非常慢!之前我们也针对一些非中文字段建立了聚集索引和非聚集索引,确实速度有了一定的提高。但是针对中文字段建立全文索引时,速度倒是有了一定的提高,但是检索的结果和未建全文索引相差很大。查阅相关资料后得知SQL Server2005在建立全文索引时对中文的切词很有问题。
于是想到了何不自己建一张索引表呢,但是我不知道建立索引表之后再怎么和原来的表关联起来使用。
比如我们这里有一个字段是“新闻摘要”(News_Abstact),现在需要对其进行切词然后建立索引词表,最后再和News这张表进行关联。
请教各位高手,你们遇到过类似的情况吗,我现在应该怎么下手去做呢?
还有我最近看了一些关于Lucene的文章,它采用的是类似于关系数据库的一种文档结构,那么我想在应该怎样把Lucene和SQL Server2005集合起来呢?
问题点数:
100
回复次数:
2
显示所有回复
显示星级回复
显示楼主回复
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
mawenhu
该用户很懒,没有设置昵称
等级:
可用分等级:
短工
总技术分:
0
总技术分排名:
318040
发表于:
2008-08-28 16:35:26
1
楼 得分:
0
自己的问题还是自己解决了。
由于SQL Server2005本身建立的索引(包括全文索引、聚集和非聚集索引)我们是看不到的,也无法深入了解其内部结构以及索引的建立方法。因此建议采用Lucene.net,现在的版本已经到了2.1 。
我们可以使用Lucene.net框架来建立全文索引并且重新构造搜索引擎。说明白一点,使用Lucene创建的索引库和SQL Server数据库表的存储形式是类似的,不同的是我们可以深入了解Lucene创建索引的过程和原理,尤其针对中文字段这一块,Lucene做得比SQL Server要好,它能支持基于词表的中文分词(只需要加载词表),其优势取代了SQL Server基于单个汉字字符的切词,因此索引的效率要高于SQL Server。
我们将原有SQL Server2005表中的非中文字段采用SQL Server2005自带的索引功能建立索引,而针对中文字段则将其按字节流的形势逐条传入Lucene并建立Lucene索引库,这样索引和所需的字段都已经存放在文件系统中了,这样一来就完全脱离了SQL Server2005了,因此以后的查询也将不再使用SQL语句,而是使用的Lucene中的搜索系统。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
mawenhu
该用户很懒,没有设置昵称
等级:
可用分等级:
短工
总技术分:
0
总技术分排名:
318040
发表于:
2008-08-28 16:40:55
2
楼 得分:
0
一般来说,Lucenen针对的是.txt\.doc\.XML等文件建立的全文索引,http://www.wujianrong.com/archives/2007/03/lucene_7.html讲的是如何对SQL Server数据库创建索引,参考一下。
修改
删除
举报
引用
回复
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
结帖去...
管理菜单
页面风格切换
标准风格
老版本论坛
网站简介
-
广告服务
-
网站地图
-
帮助
-
联系方式
-
诚聘英才
-
English
-
问题报告
北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
abc推荐给好友