微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Hubble.net 建表语句 Create Table

语法

[Directory(directory)]

[IndexOnly] –Optional

[ForceCollectCount(count)] -Optional

[DBTableName(table name)] –Optional

[DBAdapter(adapter name)]

[DBConnect(connection string)]

CREATE TABLE

table_name

(

{ < column_deFinition >
        | column_name AS computed_column_expression
        | < table_constraint > } [ , ...n ]

)

 

属性

 

[Directory(directory)]

这个属性指定全文索引在本地的地址。这个属性是必选属性

全文索引将被建立在这个地址下。

[IndexOnly] –Optional

这个属性指定全文数据表为仅仅索引。这个属性是可选属性

如果设置为仅仅索引,在执行插入,修改删除语句时只修改索引,而不修改数据本身。这个设置在Rebuild 或者数据库驱动索引时有用。

[ForceCollectCount(count)] –Optional

强制回收数据的记录数,可选属性

当批量插入时,Hubble.net并不会立即更新索引,而是要到插入数量超过ForceCollectionCount时才更新索引,这样做是为了尽可能提高索引的效率。ForecCollectionCount的认值为5000. 可以修改这个值为任意正整数。

[DBTableName(table name)] –Optional

数据库中对应表的表名,可选属性

由于Hubble.net全文索引是和数据库关联的,Hubble.net负责索引,数据库负责存储。如果希望Hubble.net中的表名和数据库的表名不一样,可以通过这个属性来设置。认情况下,数据库表名和Hubble.net的表名相同。

[DBAdapter(adapter name)]

数据库适配器名,必选属性

在 这里指定采用哪种数据库适配器。Hubble.net 目前认提供MS sqlSERVER 2005/2008 的数据库适配器。用户可以通过实现 IDBAdapter 接口,并通过SP_AddExternalReference 系统存储过程将自己编写的数据库适配器安装到Hubble.net中。

[DBConnect(connection string)]

连接字符串,必选属性

这个属性指定连接数据库适配器对应的数据库的连接字符串。

数据类型

目前支持的数据类型有

Int,tinyint,SmallInt,BigInt,Float,DateTime,SmallDateTime,Date,NVarchar,Varchar,NChar,Char

其中

datetime 的范围为 .net 中 datetime 数据类型的时间范围,精度为毫秒

smalldatetime 的范围是 1980年1月1日 0:0:0 - 2047年12月31日 23:59:59,精度为秒

date 的范围是 1年1月1日 - 5883516年1月1日,进度为日

nvarchar,varchar,nchar,char 这四种字符串类型可以支持指定长度和不限长度,不限长度时写成 (max),如 nvarchar(max)

如果字符串类型作为非全文方式索引(Untokenized index) 则长度最大为32。

 

column_deFinition

列名

同 T-sql,如果是关键字,用[]指定列名。

数据类型

见上一节

索引类型-可选

Tokenized

Tokenized 索引类型表示该字段为全文索引字段,如果指定这个类型,必选指定Analyzer,即分析器的名称

Untokenized

Untokenized 索引类型表示该字段为非全文索引字段,通常为一些价格,面积,分类等元数据字段,如果需要在搜索全文是同时过滤元数据,必须将相应元数据字段设置为Untokenized 类型索引字段。

None

认索引类型,仅存储。

Analyzer

如果索引类型是 Tokenized,必须通过Analyzer 关键字指定分析器的名称

如 Analyzer ‘SimpleAnalyzer’,用户可以通过实现IAnalyzer接口,并通过SP_AddExternalReference 系统存储过程将自己编写的分析器安装到Hubble.net中。

 

NULL,NOT NULL

Tokenized,Untokenized 类型索引字段必须为 NOT NULL,None 类型索引字段可以为NULL.

 

Default-可选

指定字段的认值

 

PRIMARY KEY

可以在字段定义中指定该字段为主键字段。注意通过Hubble.net设置的主键字段不是聚集索引,而是非聚集唯一性索引。Hubble.net 中表的聚集索引字段为DocId.

 

DocId 字段

DocId 字段是Hubble.net 为每张表认建立的字段,用户在编写建表语句是不需要指定这个字段。这个字段为自增长字段且是唯一性聚集性索引。这个字段用于定位指定的记录。

 

其他约束

Hubble.net 为了简化建表语句,在建表语句中不提供其他约束的定义,如果要这只其他的约束,比如字段的范围等,可以通过SP_Excutesql系统存储过程来设置。

 

示例

1. 简单的新闻表

 

[Directory('d:/test/news/')]

[DBAdapter('sqlSERVER2005')]

[DBConnect('Data Source=(local);Initial Catalog=Test;Integrated Security=True')]

Create table News

(

Title nvarchar(max) Tokenized Analyzer 'SimpleAnalyzer' NOT NULL Default '',

Content nvarchar(max) Tokenized Analyzer 'SimpleAnalyzer' NOT NULL Default '',

Time SmallDateTime Untokenized NOT NULL Default '1990-01-01',

Url    nvarchar(max)

);

exec SP_Excutesql  'News','Create index I_Time on news(time) ';

 

以上建表语句建立一个News全文索引表,全文索引建立在d:/test/news 目录下,这个表和本地sqlSERVER2005或2008 数据库认实例中的Test 库中的News表关联。

这个表有四个字段,其中Title,Content 为全文索引字段,Time 为非全文索引字段,Url 为仅存储字段。

表建立完成后,我们通过 SP_Excutesql 直接操作sqlSERVER2005 数据库中的Test 数据库,在数据库中建立为Time 字段建立一个非聚集索引,

这个索引在仅仅对Time 进行范围查询时有用。

 

2. 指定主键

单字段主键

 

[Directory('d:/test/news/')]

[DBAdapter('sqlSERVER2005')]

[DBConnect('Data Source=(local);Initial Catalog=Test;Integrated Security=True')]

Create table News

(

NewsId int NOT NULL PRIMARY KEY,

Title nvarchar(max) Tokenized Analyzer 'SimpleAnalyzer' NOT NULL Default '',

Url    nvarchar(max)

);

这个表中,我们指定NewsId 字段为主键字段

多字段主键

 

[Directory('d:/test/news/')]

[DBAdapter('sqlSERVER2005')]

[DBConnect('Data Source=(local);Initial Catalog=Test;Integrated Security=True')]

Create table News

(

NewsId int NOT NULL PRIMARY KEY,

NewsType nvarchar(16) UnTokenized NOT NULL PRIMARY KEY,

Url    nvarchar(max)

);
 

 

 

这个表中,我们指定NewsId 和NewsType字段为主键字段

仅索引

 

[Directory('d:/test/news/')]

[IndexOnly]

[DBTableName('Mynews')]

[DBAdapter('sqlSERVER2005')]

[DBConnect('Data Source=(local);Initial Catalog=Test;Integrated Security=True')]

Create table News

(

NewsId int NOT NULL PRIMARY KEY,

Url    nvarchar(max)

);

 

 

该建表语句指定该表仅仅进行索引,并且该表关联的数据库中的表名指定为Mynews.

指定为仅索引后,我们可以通过SP_Rebuild 存储过程,对数据库Mynews中的索引记录重新创建索引。这种方法一般用于全文索引丢失后的重建。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐