全文索引未创建

Muf*_*sil 3 sql-server-2008

我试图在我的表列中创建全文索引,但它给了我错误。

我的查询如下:

create table products
(
p_id int primary key,
p_name varchar(50),
)

insert into products values(1,'Sugar')
insert into products values(2,'Tea')
insert into products values(3,'Flour')
insert into products values(5,'Soap')

create index pname on products(p_name)
select * from products

create fulltext catalog product as default

create fulltext index on products(p_name) key index pname on product
Run Code Online (Sandbox Code Playgroud)

它给出了这个错误:

消息 7653,级别 16,状态 2,第 1 行“pname”不是强制执行全文搜索键的有效索引。全文搜索键必须是唯一的、不可为空的单列索引,该索引不脱机,未在非确定性或不精确的非持久计算列上定义,没有过滤器,并且最大大小为 900字节。为全文键选择另一个索引。

val*_*lex 5

您应该为 PRIMARY KEY 命名并将其用作最后一条语句中的 KEY INDEX。

create table products
(
p_id int CONSTRAINT [PK_products] PRIMARY KEY,
p_name varchar(50),
)

....
create fulltext index on products(p_name) key index PK_products on product
Run Code Online (Sandbox Code Playgroud)

KEY INDEX index_name

是 table_name 上唯一键索引的名称。KEY INDEX 必须是唯一的、单键的、不可为空的列。为全文唯一键选择最小的唯一键索引。为了获得最佳性能,我们建议全文键使用整数数据类型。