我的程序中,blob字段一定要放的是DOC,PDF类型文件的内容
我通过java已将Word文件的全部数据存入Oracle的Bolb列中,读库、编辑、存库均已成功。问题是:如何对Blob列中的二进制格式 Word文件进行全文检索?
我感觉是filter的问题,好象它不支持对含有中文字符的文档的过滤,intermedia实际上是用filter将BLOB中的字段转化成纯文本,然后在纯文本上建索引,所以我猜测,它不支持对含有中文字符的文件的过滤,各位大哥有什么好方法,指点一下,
我通过java已将Word文件的全部数据存入Oracle的Bolb列中,读库、编辑、存库均已成功。问题是:如何对Blob列中的二进制格式 Word文件进行全文检索?
我感觉是filter的问题,好象它不支持对含有中文字符的文档的过滤,intermedia实际上是用filter将BLOB中的字段转化成纯文本,然后在纯文本上建索引,所以我猜测,它不支持对含有中文字符的文件的过滤,各位大哥有什么好方法,指点一下,
好像要使用dbms_lob包,具体什么函数你自己查一下
用dbms_lob.instr(nr,'中国')>1,如不行,可以自定一个函数,看否行?
既然你成功读取,那可用方法做一个函数,在函数体内把该字段读出来,进行比较,或是真,那就回1,假返回0.
把你的email告诉我,我给你发一个文档。那是我以前写的,希望能对你有帮助。以前曾经做过文本检索的实验,现在都忘记了,幸好还有文档。
再用它建立索引,我这么做可以过引word、ppt、excel文档没问题,只是在索引
中文PDF文档时没成功,可能是Oracle本身的ctxhx有问题。你要是解决了这个
问题,通知我吧!
的问题,索引都建不起来,我想是不是版本的问题
建议你用Oracle816试试,按照我的文档步骤来做,最起码应该可以检索出来纪录的。
d、 创建inso_filter.cmd程序,e、 并把该程序放入ORACLE_HOME\ctx\bin目录:
set oracle_home=d:\oracle\ora81
ctxhx.exe %1 %2 chinesegb gb2312这到底是什么意思,在8.1.7下,ctx目录下没有bin目录,我是自己新建的,不知道是不是这步出错了,还有下面这些步骤,我根本就不用设,8.1.7里面都已经设好了,什么不用改,很怪异!!!a、 配置IPC监听地址,b、 例如
将
LISTENER =
(ADDRESS_LIST=
(ADDRESS=
(PROTOCOL=tcp) (HOST=tech035) (PORT=1521)
)
)
改为
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC) (KEY = EXTPROC0))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP) (HOST = ap118sun) (PORT=1521))
)
)
)c、 增加一个系统标d、 示符和一个程序名,e、 例如
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\Oracle\Ora81)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = D:\Oracle\Ora81)
(SID_NAME = orcl)
)
)f、 对于EXTPROC0增加网络描述服g、 务名h、 描述入口,i、 这需要修改客户端和服j、 务器端的tnsnames.ora文件,k、 注意在文件的CONNECT_DATA部分用SID而l、 不m、 是用SERVICE_NAME,n、 例如,o、 可以将下列部分放入文件末端
extproc_connection_data =
(DESCRIPTION=
(ADDRESS_LIST =
(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0))
)
(CONNECT_DATA=
(SID=PLSExtProc)
(PRESENTATION = RO)
)
)
并把该程序放入ORACLE_HOME\ctx\bin目录:
set oracle_home=d:\oracle\ora81
ctxhx.exe %1 %2 chinesegb gb2312上面的步骤很关键,它使得建立的索引对中文也可以检索.至于bin目录的问题,我忘记当时是不是我自己建立的,我当时用oracle816.你可以装装816试试.
至于其他的配置,如果已经配置好了就不用管了.我还是建议你看看《Oracle8i数据库开发技术与技巧》这本书,我的实验就是根据这本书的指导完成的,其他的问题应该可以在书中找到答案.
因为好久没有接触这方面的内容,很多东西都记不得了.
NLS_LANG是指环境变量,指定ORACLE支持的字符集