如何在 Informix 中创建 BTS 索引

Posted

技术标签:

【中文标题】如何在 Informix 中创建 BTS 索引【英文标题】:How to create BTS index in Informix 【发布时间】:2016-12-01 13:52:57 【问题描述】:

我在 Informix 中创建 BTS(基本文本搜索)索引时遇到问题。我创建了测试表和 sbspace 来存储索引信息,就像在文档中一样。现在我的 sbspace 看起来像:

[informix@test-informix informix]$ onspaces -c -S bts_sbspace -p  /home/informix/chunks/bts_sbspace -o 0 -s 1500000 -Df "LOGGING=ON"
...
[informix@test-informix 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.FC4bts2.0 注册测试数据库。

如何创建 BTS 索引?

【问题讨论】:

【参考方案1】:

您的示例工作在我的 11.50uc7 上运行良好,但表架构不同。 可能是你遇到了错误 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

【讨论】:

这个数据库似乎是 dbexported/dbimported 并且一些 BTS 表处于错误状态,所以即使它说“成功”,注册/注销 BTS 也确实不起作用。我能够在另一个新数据库上创建 BTS 索引。

以上是关于如何在 Informix 中创建 BTS 索引的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Informix SQL 中创建屏幕表单?

如何在informix中创建触发器?

在 Informix 中创建 TEMP 存储过程

在informix中创建存储过程

使用 prepare 语句在 informix 4gl 中创建临时表

如何在 MongoDB 中创建嵌套索引?