您的位置:首页 > 数据库

体验sqlserver 2008 简体中文 全文搜索的强大功能

2020-03-01 06:14 471 查看

暑期在开发www.jydoc.com网站,网站需要开发快速的全文搜索功能,于是在PC上安装了ms sqlserver 2008简体中文企业版实验,硬件为DELLOptiPlex 745,CPU DualCore Intel Pentium D 945, 3400 MHz,内存1024MB DDR 667,安装完成后限制SQLServer 最大使用512MB内存。

建下来就创建数据表:

USE [jydoc]
GO

/****** Object:  Table [dbo].[jydoc_blog]    Script Date: 08/10/2009 21:51:48 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[jydoc_blog](
    [id] [int] IDENTITY(1,1) NOT NULL,
    [click] [int] NULL,
    [title] [varchar](200) NULL,
    [color] [varchar](10) NULL,
    [writer] [varchar](50) NULL,
    [wid] [int] NULL,
    [pubdate] [int] NULL,
    [keywords] [varchar](250) NULL,
    [goodpost] [smallint] NULL,
    [badpost] [smallint] NULL,
    [notpost] [tinyint] NULL,
    [description] [varchar](250) NULL,
    [textfile] [varchar](100) NULL,
     [url=https://blog.csdn.net/mesky2009]mesky2009" target=_blank> [varchar](100) NULL,
 CONSTRAINT [PK_jydoc_blog] PRIMARY KEY CLUSTERED
(
    [id] DESC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO

ALTER TABLE [dbo].[jydoc_blog] ADD  CONSTRAINT [DF_jydoc_blog_click]  DEFAULT (0) FOR [click]
GO

ALTER TABLE [dbo].[jydoc_blog] ADD  CONSTRAINT [DF_jydoc_blog_wid]  DEFAULT (0) FOR [wid]
GO

ALTER TABLE [dbo].[jydoc_blog] ADD  CONSTRAINT [DF_jydoc_blog_goodpost]  DEFAULT (0) FOR [goodpost]
GO

ALTER TABLE [dbo].[jydoc_blog] ADD  CONSTRAINT [DF_jydoc_blog_badpost]  DEFAULT (0) FOR [badpost]
GO

ALTER TABLE [dbo].[jydoc_blog] ADD  CONSTRAINT [DF_jydoc_blog_notpost]  DEFAULT (1) FOR [notpost]
GO



第二步,将近200万篇博客文章导入,文章内容数据存文本文件,textfile字段记录文件的存储位置,文本存储,目的就是减少数据库文件的容量,以后等配好RAID5服务器后再将文本导入表字段,可对内容进行全文搜索,目前对对标题和摘要进行全文搜索。完成后数据库文件接近1.8GB,。

第三步,给标题title和摘要description两个字段配置到全文目录,并立即启动填充,不到半个小时后,近200万条记录就填充索引完毕。

接下来就做查询实验,构造了一个SQL语句

SELECT b.id,b.title,k.RANK
FROM jydoc_blog AS b INNER JOIN
   FREETEXTTABLE (jydoc_blog,(title),
      '蹲距式起跑教案', 500)
        AS k
   ON b.ID = k.[KEY];
GO


查询结果如下

1710924    蹲距式起跑教案    266
1751816    蹲距式起跑教案    266
782690    蹲距式起跑教学反思    170
444412    《蹲距式跳远》教案    149
575039    初一体育<蹲距式跳远>说课稿及教案    149
1038479    学习蹲踞式起跑和起跑后加速跑技术    148
180839    对聋生学习蹲距式跳远的教学反思    123
841575    蹲距式跳远    123
1736038    《蹲距式跳远》说课    123
556182    初一体育教案--蹲距跳远说课    121
367387    蹲踞式起跑后的加速跑说课稿    120
822459    “蹲踞式起跑”教学设计说明及教学计划    120
822465    “蹲踞式起跑”教学反思    120
1474546    《蹲踞式起跑》说课稿    120
1551528    《蹲踞式起跑》说课稿    120
1737234    《蹲踞式起跑》教学设计    120
52064    “而且”蹲、“而且”蹲、“而且”蹲完“鸡蛋”蹲……    102
1072456    《蹲距跳远——助跑与踏跳相结合技术》 说课    95
65836    截距式及一般式方程    93
178906    2.2.2——1-2.斜截式,截距式    93
55519    《蹲踞式跳远》说课稿    74
71877    四年级“蹲踞式跳远”说课稿    74
....................................

第一列为ID,第二列为title,第三列为匹配的相关程度(排名值),值越大,相关程序超高。

PS:sql中参数500就是取相关性最高的500条记录。

  • 点赞
  • 收藏
  • 分享
  • 文章举报
[url=https://blog.csdn.net/mesky2009]mesky2009 发布了1 篇原创文章 · 获赞 0 · 访问量 474 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: