2

我正在尝试在包含 blob(文件)的表上使用 oracle 文本模块创建全文索引。

我正在使用以下脚本来创建索引..

CREATE INDEX my_docs_doc_idx ON test_blob(doc) INDEXTYPE IS CTXSYS.CONTEXT;

我得到了结果:

[SQL] CREATE INDEX my_docs_doc_idx ON test_blob(doc) INDEXTYPE IS CTXSYS.CONTEXT
Affected rows: 0
Time: 0.190ms

但是,当我想使用...测试创建的索引时

SELECT SCORE(1) score, FILE_NAME FROM TEST_BLOB WHERE CONTAINS (doc,'cola',1) > 0

无论我向选择器添加什么值,我总是得到 0 个结果。

感谢文章: https ://community.oracle.com/thread/434057?start=0&tstart= 0 我在 ctx_user_index_errors 表中发现了错误...

DRG-11207: user filter command exited with status 127

什么可能是这个问题的原因?


编辑:

问题似乎与操作系统有关。Oracle 安装在 Windows 索引上很好,而安装在 Redhat 上的则根本无法工作。

4

2 回答 2

1

我们遇到了类似的问题。在为 Linux86-64 应用补丁“补丁 28204707:数据库补丁集更新 11.2.0.4.181016”后,我们的 Oracle 数据库版本为 11.2.0.4.181016。

我们发现用于索引的模块 ctx (Oracle Intermedia) 的库,请参阅CTXSYS.AUTO_FILTER$ORACLE_HOME/ctx/bin/ctxhx,不是用于 Linux86-64 而是用于 Itanium IA-64,因此用于不同的体系结构。只是那个单一的模块是错误的。

当我们尝试运行时,$ORACLE_HOME/ctx/bin/ctxhx没有libsc_ca.so找到但它就在那里。所以我们检查了$ORACLE_HOME/ctx/lib/libsc_ca.sowithreadelf实用程序。

readelf -h ctx/lib/libsc_ca.so

我们可以发现这是一个错误的架构。

我们在 Oracle Support 上找到了 Doc ID 2481631.1,然后我们应用了补丁 18121298 解决了我们的问题。

于 2019-04-09T08:13:28.330 回答
1

刚刚在 linux 上解决了类似的“status 127”问题。默认内容过滤器CTXSYS.AUTO_FILTER使用程序将二进制文件转换为文本。所以我尝试运行/u01/app/oracle/product/11.2.0/xe/ctx/bin/ctxhx程序并得到一个缺少库的错误。

运行yum install compat-libstdc++-33 libstdc++.so.5 -y 修复了该问题,Oracle 现在将搜索 PDF 文件,对搜索词执行标记,并以 HTML 格式返回结果。

于 2018-09-17T03:05:02.633 回答