I'm trying to create full text index using oracle text module on table containing blobs (files).
I'm using following script to create an index..
CREATE INDEX my_docs_doc_idx ON test_blob(doc) INDEXTYPE IS CTXSYS.CONTEXT;
I got the result:
[SQL] CREATE INDEX my_docs_doc_idx ON test_blob(doc) INDEXTYPE IS CTXSYS.CONTEXT
Affected rows: 0
Time: 0.190ms
However, when I want to test created index using...
SELECT SCORE(1) score, FILE_NAME FROM TEST_BLOB WHERE CONTAINS (doc,'cola',1) > 0
I always get 0 results, no matter what value I add to selector.
Thanks to article: https://community.oracle.com/thread/434057?start=0&tstart=0 I found errors in ctx_user_index_errors table...
DRG-11207: user filter command exited with status 127
What could be a cause of this problem?
EDIT:
Issue seems to be connected with operation system. Oracle installed on Windows indexes fine, while one installed on Redhat won't work at all.
答案 0 :(得分: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.so
实用程序che了readelf
。
readelf -h ctx/lib/libsc_ca.so
我们发现它是用于错误的体系结构。
我们在Oracle支持上找到了Doc ID 2481631.1,然后应用了补丁18121298解决了问题。
答案 1 :(得分:0)
只需在Linux上解决类似的“状态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返回结果。