`

建立SQL全文索引提升搜索速度

阅读更多

要实现搜索引擎的模糊查找功能,使用SQL的关键字LIKE来实现模式匹配。

现在我们有一个数据库,表名叫T1,有记录数一万条。Title字段是文本字段,长度为255,Body为备注字段。看下面的SQL语句:

Select * From T1 Where Title Like '%迅雷%'

则这句话就是要返回Table1表中Title字段里包含‘迅雷’的所有记录。由于Title是文本字段,长度也不大,故其查找速度还可以接受。

现在我们要返回Title或Body字段中包含‘迅雷’的所有记录:

Select * From T1 Where Title Like '%迅雷%' Or Body Like '%迅雷%'速度慢了许多倍,这样的速度用于Web搜索,用户会有这个耐心去等待吗?

如何解决在模糊查找中的速度问题,这就是我们今天要引出的全文索引的话题。

关于全文索引,一个能说明问题的例子就是:

给你一本你没看过的书,指定书里面存在的一句话让你去查找,而且不能看目录(索引),那么你只能一页一页的翻书本去查找了,想一想,你对这本书的内容也不了解,这样的查找速度会快吗?

如果允许看目录(索引),根据目录(索引)的指引,你也许会更快的找到(如果这个索引和要查找的话关联性大)。另外,我们再假如你很喜欢这本书,并且每天阅读,过一段时间,你已经对书本的内容了如指掌,这个时候,让你再找一段话,你是不是一下子便能知道这句话大概的位置?然后根据大概位置在附近查找,然后很快定位搜索结果。这其实可以说是你已经在你的脑子里为这本书建立了全文索引。

SQL全文索引就是将数据库的记录按词语做了事先的索引,以便在模糊查找的时候能提升速度。这些索引的词语,对于英文,每两个单词之间有一个空格,可中文不一样了,这涉及到中文分词技术。我们在使用数据库引擎的时候,引擎的全文索引其实已经使用了分词的技术,当然这并不能从表面所看到。

我们以MS SQL Server 2000为例,说明如何建立全文索引。

1、启动全文索引。在Microsoft SQL Server >> SQL Server 组 >> (LOCAL) (Windows NT) >> 支持服务 >> 全文检索 >> 右键菜单元 >> 启动;

2、对数据库建立全文目录。在Microsoft SQL Server >> SQL Server 组 >> (LOCAL) (Windows NT) >> 数据库 >> 全文目录 >> 右建菜单 >> 新建全文目录;

3、对所要建立全文索引的表建立全文索引。在Microsoft SQL Server >> SQL Server 组 >> (LOCAL) (Windows NT) >> 数据库 >> 你的数据库名 >> 表 >> 双击 >> 在右侧列表中选择要建立全文索引的数据表 >> 右建菜单 >> 全文索引表 >> 在表上定义全文索引 , 按向导,选择要建立全文索引的字段和全文目录,完成操作。注意,你的数据表必须有主键,否则会出现如下错误提示:“所选表中没有在不允许 NULL 的列上的唯一单个列索引”。

4、对上一步建立全文索引时选择的全文目录进行填充。在Microsoft SQL Server >> SQL Server 组 >> (LOCAL) (Windows NT) >> 数据库 >> 全文目录 >> 双击 >> 在右侧列表中选择全文目录 >> 右建菜单 >> 启动完全填充。注意,填充是需要时间的。

这样,给数据表建立全文索引之后我们就可以使用CONTAINS来检索了:

Select * From T1 Where Title Like '%迅雷%' OR CONTAINS(Body, '%迅雷%')试一试查询速度,第一次查询速度还是很慢,当查询驻入内存之后,查询就快了。已免强可以接受。但第一次查询速度慢的问题还需要解决,并且以后的查询离百度搜索速度还有很大距离。就是说还有很多地方可以完善的

分享到:
评论

相关推荐

    sql全文索引 sphinx

    总之,Sphinx作为SQL全文索引工具,通过高效的全文索引和搜索机制,提升了数据库的查询效率,为企业级应用提供了强大的搜索能力。同时,结合CoreSeek的中文支持,使其在处理中文数据时同样表现出色。

    SQL2000 全文索引完全图解

    总结,SQL Server 2000的全文索引是提升数据库搜索效率的关键工具,通过理解其工作原理和正确配置,可以在海量文本数据中实现高效、智能的搜索。无论是对数据库管理员还是开发人员来说,掌握全文索引技术都是提升...

    Sql2008_全文索引详解

    总的来说,SQL Server 2008的全文索引是提升数据库中长文本字段搜索效率的关键工具,尤其适用于那些需要快速响应复杂搜索请求的应用场景。通过理解和应用全文索引,数据库管理员和开发人员可以显著提高用户体验,...

    sql全文索引

    全文索引是SQL Server数据库系统中一种高效检索长文本字段的技术,它极大地提升了在大量文本数据中搜索关键字的速度。全文索引不同于传统的B-tree结构索引,后者主要针对数值和较短的文本字段。全文索引利用了特定的...

    SQL Server的全文索引及优化.pdf

    全文索引技术通过创建一个特殊的索引,使得全文搜索的速度和效率大大超过传统的基于表的搜索方式。 全文索引的创建和优化涉及对全文搜索功能的配置,全文索引的工作原理,以及如何执行有效的全文查询。全文索引通过...

    SQL Server 全文索引查询

    一旦全文索引建立,你可以使用T-SQL的两种主要查询语法:`CONTAINS`和`FREETEXT`。 `CONTAINS`函数用于精确匹配查询。例如,如果你要在Sample表的Column字段中查找包含“世界末日”的记录,可以使用以下查询: ```...

    MS Sql 2005 全文索引

    全文索引是 Microsoft SQL Server 2005 提供的一项强大功能,能够显著提升在文本字段中执行关键字查询的效率。通过了解全文索引的基本概念、术语和操作方法,开发者可以更好地利用这项技术来优化应用程序的性能。...

    如何设置SQL Server数据库全文索引服务

    全文索引服务在SQL Server中的运用极大地提升了文本搜索的性能,特别是在大数据量的场景下,它提供了更快的查询速度和更精确的匹配结果。然而,需要注意的是,一旦全文索引建立,对表结构的修改可能会导致索引失效,...

    SQLSERVER全文索引的使用

    ### SQL Server 全文索引的使用 #### 一、全文索引概述 在SQL Server中,全文索引是一种特殊类型的索引,主要用于提高文本数据的检索效率,尤其是在执行复杂模糊查询时。全文索引支持复杂的自然语言查询,能够帮助...

    SQL Server 2005 全文索引

    SQL Server 2005的全文索引功能提供了强大的文本搜索能力,极大地提升了在text和ntext列上的查询性能。通过正确安装、配置和使用全文索引,用户可以有效地从海量文本数据中获取所需信息,提高业务效率。同时,全文...

    Sql2005 全文索引详解

    全文索引通过建立特殊的结构,能够快速定位和检索大量文本数据中的特定词汇,极大地提高了搜索性能。 1. **全文索引的介绍** 全文索引不同于传统的B树结构索引,它使用倒排索引技术,将文本字段中的每个单词映射到...

    sql2005全文索引汇编.pdf

    从给定的文件信息中,我们可以推断出关于SQL Server 2005全文索引的一些知识点。全文索引是一种特殊类型的...通过全文索引,SQL Server 2005提供了一种高效搜索和检索文本数据的方法,显著提升了数据库管理系统的性能。

    (转)sql2005全文索引.doc

    在这种情况下,**全文索引**作为一种特殊的索引技术,可以显著提升在长文本字段中的搜索速度。 #### 二、全文索引概念 **全文索引**与普通索引不同,它是一种基于标记的功能性索引,由Microsoft SQL Server全文...

    如何使用SQL全文检索

    5. **填充全文索引**:首次创建索引后,需要进行全文索引的填充操作,这将扫描选定列的全部数据并建立索引。填充过程可能需要很长时间,取决于数据量。 6. **持续维护**:索引填充完成后,你可以设置自动或手动的...

    SQL2005全文搜索技巧

    2. **创建全文索引**:在想要建立全文索引的字段上创建全文索引。具体步骤包括: - 打开SQL Server Management Studio (SSMS),找到对应的数据库及表。 - 右键点击表名,选择“Full-Text Indexes”>“Define Full-...

    ORacle 全文索引

    综上所述,Oracle全文索引是Oracle数据库中的强大工具,它为企业提供了高效、灵活的文本搜索能力,极大地提升了数据的价值和应用范围。正确理解和应用全文索引技术,对于提升数据库系统的性能和用户体验至关重要。

    SQL专家门诊源代码---全文索引和全文检索.rar

    在SQL数据库领域,全文索引和全文检索是提高数据搜索效率的重要工具,尤其在处理大量文本数据时。本文将深入探讨这两个概念,并结合"SQL专家门诊源代码"提供的示例,解析其实现方法和应用场景。 全文索引是数据库...

    oracle、sql数据库批量建索引

    例如,位图索引适合于在低基数(unique values比例低)的列上,而全文索引则适用于文本搜索。 "iTelluro.Tools.SqlIndex"这个工具很可能是一个帮助管理和优化数据库索引的实用程序,可能提供了图形化界面或API,...

Global site tag (gtag.js) - Google Analytics