如何建立全文索引[转]

原创 2007年09月15日 17:26:00

在进行全文检索之前,必须先建立和填充数据库全文索引。为了支持全文索引操作,SQL Server 7.0新增了一些存储过程和Transact-SQL语句。使用这些存储过程创建全文索引的具体步骤如下(括号内为调用的存储过程名称):

1. 启动数据库的全文处理功能(sp_fulltext_

database);;

2. 建立全文检索目录(sp_fulltext_catalog);

3.在全文检索目录中注册需要全文索引的表(sp_fulltext_table);

4. 指出表中需要全文检索的列名(sp_fulltext_

column);;

5. 为表创建全文索引(sp_fulltext_table);;

6. 填充全文检索目录(sp_fulltext_catalog)。

下面举例说明如何创建全文索引,在本例中,对Test数据库Book表中Title列和Notes列建立全文索引。

use test //打开数据库

//打开全文索引支持,启动SQL Server的全文搜索服务

execute sp_fulltext_database 'enable'

//建立全文检索目录ft_test

execute sp_fulltext_catalog 'ft_test', 'create'

为Title列建立全文索引数据元,pk_title为Book表中由主键所建立的唯一索引,这个参数是必需的。

execute sp_fulltext_table 'book','create', 'ft_test','pk_title'

//设置全文索引列名

execute sp_fulltext_column 'book', 'title', 'add'

execute sp_fulltext_column 'book','notes', 'add'

//建立全文索引

execute sp_fulltext_table 'book', 'activate'

//填充全文索引目录

execute sp_fulltext_catalog 'ft_test', 'start_full'

至此,全文索引建立完毕。

进行全文检索

SQL Server 2000提供的全文检索语句主要有CONTAINS和FREETEXT。CONTAINS语句的功能是在表的所有列或指定列中搜索:一个字或短语;一个字或短语的前缀;与一个字相近的另一个字;一个字的派生字;一个重复出现的字。

CONTAINS语句的语法格式为:

CONTAINS({column | *}),

_condition>)

其中,column是搜索列,使用“*”时说明对表中所有全文索引列进行搜索。Contains_search_

condition 说明CONTAINS语句的搜索内容,其语法格式为:

{||||}[{{AND|AND NOT|OR}}] [...n]

下面就simple_term和prefix_term参数做简要说明:

simple_term是CONTAINS语句所搜索的单字或短语,当搜索的是一个短语时,必须使用双引号作为定界符。其格式为:

{'word'|“ phrase”}

prefix_term说明CONTAINS语句所搜索的字或短语前缀,其格式为:

{“word*” | “phrase*”}

例如,下面语句检索Book表的Title列和Notes列中包含“database”或“computer”字符串的图书名称及其注释信息:

select title, notes

from book

where contains(tilte, 'database') or contains(notes,'database')

or contains(title,'computer') or contains(notes,'computer')

FREETEXT语句的功能是在一个表的所有列或指定列中搜索一个自由文本格式的字符串,并返回与该字符串匹配的数据行。所以,FREETEXT语句所执行的功能又称做自由式全文查询。

FREETEXT语句的语法格式为:FREETEXT({column | * },'freetext_string')

其中,column是被搜索列,使用“*”时说明对表中的所有全文索引列进行搜索。Freetext_string参数指出所搜索的自由文本格式字符串。

例如,下面语句使用FREETEXT语句搜索Book表中包含“Successful Life”字符串的数据行:

select title, notes

from book

where freetext(*,'Successful Life')
  

Oracle全文索引之二 创建

创建创建索引的准备工作测试环境 在测试用户myoralce用户下执行:create table YU_TEST(        id number,        nam...
  • qq_23412263
  • qq_23412263
  • 2017年04月20日 14:27
  • 327

如何创建全文索引

本章介绍在SQL Server 2008 R2 下的全文索引,它能够对数据中的字符类型列(如varchar、text等类型)进行索引,并通过索引实现全文搜索查询。首先对比简单介绍一下常规索引和全文索引...
  • hyperhawk
  • hyperhawk
  • 2014年02月20日 10:00
  • 2633

SQL怎样建立全文索引

怎样建立全文索引  微软的SQL Server数据库是一个在中低端企业应用中占有广泛市场的关系型数据库系统,它以简单、方便、易用等特性深得众多软件开发人员和数据库管理人员的钟爱。但SQL Serve...
  • chinaboykai
  • chinaboykai
  • 2013年08月13日 23:59
  • 720

(转)怎样建立全文索引

微软的SQL Server数据库是一个在中低端企业应用中占有广泛市场的关系型数据库系统,它以简单、方便、易用等特性深得众多软件开发人员和数据库管理人员的钟爱。但SQL Server 7.0以前的数据库...
  • chyonglong
  • chyonglong
  • 2007年06月19日 11:44
  • 391

oracle全文索引(全文检索)的介绍,使用和创

全文索引 Oracle的全文检索实现逻辑,通过lexer词法分析器,讲把值的term找出来。记录在一组的DR$开头的表里面(主要是DR$xxxI表),主要记录term的位置,frequency频率,...
  • weeknd
  • weeknd
  • 2017年05月10日 19:46
  • 1478

MongoDB 索引之全文索引

mongodb full text search(fts:全文搜素)是在版本2.4新加的特性。在以前的版本,是通过精确匹配和正则表达式来查询,这效率是很低的。全文索引,能够从大量的文本中搜索出所需的内...
  • tianwei7518
  • tianwei7518
  • 2015年03月19日 21:34
  • 4320

oracle11g 建立全文索引

 在手动创建了数据库后,只是具备了基本的功能,有的还需要使用全文检索功能,因此还需要配置全文检索。    按照以下步骤来做:     1.检查数据库是否具有全文检索功能(这是针对已经...
  • baogreat
  • baogreat
  • 2016年01月28日 15:16
  • 5714

SqlServer 全文索引创建及测试

-- 创建测试表 -- DROP TABLE FullTextIndexing CREATE TABLE FullTextIndexing ( ID INT IDENTITY(1,1) NOT NU...
  • kk185800961
  • kk185800961
  • 2015年04月13日 09:22
  • 6927

oracle创建全文检索--多列

表字段 ID VARCHAR2(30) ID TITLE VARCHAR2(256) 标题 SUB_TITLE VARCHAR2(256) 副标题 CONTENT CLOB 内容...
  • chen_815
  • chen_815
  • 2017年04月25日 14:22
  • 806

建立全文索引

建立全文索引 在进行全文检索之前,必须先建立和填充数据库全文索引。为了支持全文索引操作,SQL Server 7.0新增了一些存储过程和Transact-SQL语句。使用这些存储过程创建全文索引的具体...
  • xw_andy
  • xw_andy
  • 2009年06月09日 17:15
  • 436
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何建立全文索引[转]
举报原因:
原因补充:

(最多只允许输入30个字)