我有一个表定义如下
CREATE TABLE [dbo].[Dialogs]( [ID] [int] IDENTITY(1,1) NOT NULL, [DiscussionID] [int] NOT NULL, [ApprovedByUserID] [int] NULL, [AddedByUserID] [int] NULL, [Text] [nvarchar](max) NULL, [ApprovalStatus] [int] NULL, [ApprovedOn] [datetime] NULL, [AddedOn] [datetime] NOT NULL, CONSTRAINT [PK_dbo.Dialogs] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
要创建索引我在下面使用 但 '.html'附近的语法不正确. 任何人都可以举例说明如何 首先,问题是你应该引用一个你 但是 TYPE COLUMN type_column_name 指定表列的名称type_column_name,用于保存varbinary(max)或image文档的文档类型.此列称为类型列,包含用户提供的文件扩展名(.doc,.pdf,.xls等).type列必须是char,nchar,varchar或nvarchar类型. 仅当column_name指定varbinary(max)或image列时才指定TYPE COLUMN type_column_name,其中数据存储为二进制数据; 否则,SQL Server会返回错误. 注意 在索引时,全文引擎使用每个表行的类型列中的缩写来标识要在column_name中用于文档的全文搜索过滤器.过滤器将文档作为二进制流加载,删除格式信息,并将文档中的文本发送到分词器组件.有关更多信息,请参阅配置和管理搜索过滤器 由于索引位于文本列上,因此不适用,并且create index语句将返回错误.即使你将html文档存储为二进制数据,它仍然无法按预期工作,你所追求的是html解析,这是一个与全文索引不同的问题.Text
列包含用户输入的html.我想创建的全文索引Text
列,我还需要支持HTML过滤器,这样,当任何用户类型或任何其他HTML标记则不会返回任何结果.
SQL
CREATE FULLTEXT INDEX ON [Dialogs]
(
[Text] TYPE COLUMN '.html'
)
KEY INDEX [PK_dbo.Dialogs]
ON AOPRDefault;
SQL Server
抛出错误
TYPE COLUMN
在创建全文索引时指定选项.
1> GarethD..:'.html'
不是文字的列,所以你可能会有这样的东西:-- ADD COMPUTED COLUMN TO STORE FILE TYPE
ALTER TABLE dbo.Dialogs ADD FileExtension AS '.html';
CREATE FULLTEXT INDEX ON dbo.Dialogs ([Text] TYPE COLUMN FileExtension)
KEY INDEX [PK_dbo.Dialogs] ON AOPRDefault;
TYPE COLUMN
根据文件,你误解了财产的目的:
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有