我想在varchars和numbers这几个列上创建一个全文索引。这就是数字的问题。
真的没有办法为全文索引添加number或decimal形式的列吗?
例如,我有一篇表格文章:
CREATE TABLE article
( articleid number(10) not null,
articlename varchar(50) not null,
articlecode1 varchar(50)
);
CREATE FULLTEXT CATALOG MyCatalog;
CREATE FULLTEXT INDEX ON artikel
(articleid LANGUAGE 0x0,
articlename LANGUAGE 0x0,
articlecode1 LANGUAGE 0x0)
KEY INDEX PK_ARTICLE ON MyCatalog
WITH CHANGE_TRACKING AUTO;无法创建它,因为articleid是一个数字!
我的另一种解决方案是创建第二个列,比如articleidtext varchar,作为文章is的副本。然后用触发器填满。
真的没有别的办法吗?
我也尝试过这样的类型转换:CAST(articleid AS varchar) LANGUAGE 0x0,它也不工作。
还有别的建议吗?
谢谢..。
发布于 2011-01-28 21:27:11
您可以基于您的articleId创建VARCHAR类型的计算持久列-这不需要使用触发器或任何东西填充,它将始终表示articleId,但作为VARCHAR列,因此可以对其进行全文索引:
ALTER TABLE dbo.article
ADD ArticleIDText AS CAST(ArticleID AS VARCHAR(20)) PERSISTED现在把你的全文索引放在ArticleIDText上,一切都会好起来的……
发布于 2011-01-28 21:05:58
不能在为数字的列上创建全文索引。如果您希望能够使用全文进行搜索,您可以将该列转换为字符串。
但真正的问题是,您是在寻找全文索引,还是仅仅是普通索引!?
发布于 2015-07-13 23:56:24
fulltext仅适用于类型:
char,varchar,nchar,nvarchar,text,ntext,image,xmlилиvarbinary(max)
https://stackoverflow.com/questions/4828412
复制相似问题