2016-12-01 108 views
0

我在Informix中创建BTS(基本文本搜索)索引时遇到问题。我创建了测试表和智能大对象空间来存储索引信息,就像在文档中一样。现在我的sbspace的样子:如何在Informix中创建BTS索引

[[email protected] informix]$ onspaces -c -S bts_sbspace -p /home/informix/chunks/bts_sbspace -o 0 -s 1500000 -Df "LOGGING=ON" 
... 
[[email protected] informix]$ onstat -d | grep SB 
ed682820   7  0x68001 7  3  2048  N SB  informix sbspace 
fd409e00   14  0x68001 73  1  2048  N SB  informix bts_sbspace 
ed8c1028   7  7  0   50000  43896  44061  POSBD /home/informix/IFMXDATA/ol_testifx/sbspacedbs.000 
edb82db8   30  7  0   500000  466235  466319  POSBD /home/informix/IFMXDATA/ol_testifx/sbspacedbs.001 
ee7fe028   31  7  0   500000  466306  466319  POSBD /home/informix/IFMXDATA/ol_testifx/sbspacedbs.002 
fd40de00   73  14  0   750000  699446  699446  POSBD /home/informix/chunks/bts_sbspace 

但是,当我想创建索引:

CREATE INDEX lab1_bts_index ON lab1(text_data bts_lvarchar_ops) USING BTS IN bts_sbspace; 

它错误结束:

Error: bts internal error. File c/bts_am_extspace.c, line 505 
SQLState: BTS02 
ErrorCode: -937 
Position: 88 

我用IBM Informix Dynamic Server Version 11.50.FC4与测试数据库中注册bts2.0

如何创建BTS索引?

回答

1

您的示例工作在我的11.50uc7上很好,但具有不同的表架构。 可能是你遇到了bug IC81229。

onmode -p +1 bts 
echo "register bts.2.00 stores"|blademgr 
onspaces -c -S bts_sbspace -p /home/informix/ids1150uc7/bts_sbspace -o 0 -s 2000 -Df "LOGGING=ON" 
create table tclob (id integer,c clob); 
create index ixclob on tclob (c bts_clob_ops) using bts in bts_sbspace 
+0

看来,这个数据库是dbexported/dbimported和一些BTS表是错误的状态,注册/注销BTS即使它说:“成功”真的不起作用。我能够在另一个新的数据库上创建BTS索引。 –