3

我想在几个列上创建一个全文索引,这些列是varchars和数字。数字也有问题。

真的没有办法为全文索引添加列作为数字或小数吗?

例如,我有一篇表格文章:

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 varchararticleid 的副本。之后用触发器填满。

真的没有别的办法了吗?

我也试过像 Cast 一样:CAST(articleid AS varchar) LANGUAGE 0x0它也不起作用。

还有什么建议吗??

谢谢...

4

3 回答 3

2

VARCHAR您可以根据您的类型创建一个计算的、持久的列articleId- 这不需要填充触发器或任何东西,它将始终表示articleId, 但作为VARCHAR列,因此它可以被全文索引:

ALTER TABLE dbo.article
ADD ArticleIDText AS CAST(ArticleID AS VARCHAR(20)) PERSISTED

现在把你的全文索引ArticleIDText,一切都应该很好......

于 2011-01-28T13:27:11.387 回答
0

您不能在数字列上创建全文索引。如果您希望能够使用全文搜索它,您可以将列转换为字符串。

但真正的问题是您是在寻找全文索引还是只是普通索引!?

于 2011-01-28T13:05:58.133 回答
0

全文仅适用于类型:

char, varchar, nchar, nvarchar, text, ntext, image, xml 和 varbinary(max)

于 2015-07-13T15:56:23.867 回答