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 varchar私の別の解決策は、articleid のコピーなどの 2 番目の列を作成することです。その後、トリガーでいっぱいにします。

本当に他に方法はないのでしょうか?

私も次のようにキャストしようとしました: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

フルテキストはタイプでのみ機能します:

char、varchar、nchar、nvarchar、text、ntext、image、xml および varbinary(max)

于 2015-07-13T15:56:23.867 に答える
0

数値の列にはフルテキスト インデックスを作成できません。全文を使用して検索できるようにしたい場合は、列を文字列に変換できます。

しかし、本当の問題は、全文索引を探しているのか、それとも通常の索引だけを探しているのか!?

于 2011-01-28T13:05:58.133 に答える