ORACLE TEXT FILTER PREFERENCE(二)
这篇文章继续介绍全文索引的FILTER属性,介绍Oracle的INSO_FILTER属性。
Oracle的全文索引除了可以支持文本文件外,还可以支持多种文档格式,对于这些文档格式,在建立索引的时候需要指定INSO_FILTER参数,使用这个过滤参数,Oracle的全文索引可以识别绝大部分的常见文档,比如:word、pdf等。
下面看一个索引文档的例子:
SQL> CREATE TABLE T (ID NUMBER, DOCS VARCHAR2(1000));
表已创建。
SQL> INSERT INTO T VALUES (1, 'Oracle920 Text Application Developer''s Guide.pdf');
已创建 1 行。
SQL> INSERT INTO T VALUES (2, '35697_bommarito.doc');
已创建 1 行。
SQL> COMMIT;
提交完成。
SQL> CONN CTXSYS/CTXSYS@YANGTK
已连接。
SQL> BEGIN
2 CTX_DDL.CREATE_PREFERENCE('TEST_FILE', 'FILE_DATASTORE');
3 CTX_DDL.SET_ATTRIBUTE('TEST_FILE', 'PATH', 'D:databaseoracleoracle docoracle 9i;D:databaseoracleoracle doc');
4 END;
5 /
PL/SQL 过程已成功完成。
SQL> CONN YANGTK/YANGTK@YANGTK
已连接。
SQL> CREATE INDEX IND_T_DOCS ON T (DOCS) INDEXTYPE IS CTXSYS.CONTEXT
2 PARAMETERS ('DATASTORE CTXSYS.TEST_FILE FILTER CTXSYS.INSO_FILTER');
索引已创建。
SQL> SELECT * FROM T WHERE CONTAINS(DOCS, 'ORACLE') > 0;
ID DOCS
---------- ------------------------------------------------------------
2 35697_bommarito.doc
1 Oracle920 Text Application Developer's Guide.pdf
FILTER的默认值并不是一成不变的,这个默认值会受索引字段类型和DATASTORE的类型的影响。在上一篇文章中的测试中,对于存储在数据库中的VARCHAR2、CHAR和CLOB字段中的数据,Oracle自动选择了NULL_FILLER。在这里DATASTORE的属性为FILE_DATASTORE,则Oracle会默认选择INSO_FILTER作为默认值。
下面看具体的例子:
SQL> DROP INDEX IND_T_DOCS;
索引已丢弃。
SQL> CREATE INDEX IND_T_DOCS ON T (DOCS) INDEXTYPE IS CTXSYS.CONTEXT
2 PARAMETERS ('DATASTORE CTXSYS.TEST_FILE FILTER CTXSYS.NULL_FILTER');
索引已创建。
SQL> SELECT * FROM T WHERE CONTAINS(DOCS, 'ORACLE') > 0;
未选定行
SQL> DROP INDEX IND_T_DOCS;
索引已丢弃。
SQL> CREATE INDEX IND_T_DOCS ON T (DOCS) INDEXTYPE IS CTXSYS.CONTEXT
2 PARAMETERS ('DATASTORE CTXSYS.TEST_FILE');
索引已创建。
SQL> SELECT * FROM T WHERE CONTAINS(DOCS, 'ORACLE') > 0;
ID DOCS
---------- ------------------------------------------------------------
2 35697_bommarito.doc
1 Oracle920 Text Application Developer's Guide.pdf
ORACLE TEXT FILTER PREFERENCE(二)相关推荐
- ORACLE TEXT FILTER PREFERENCE(一)
介绍完Oracle全文索引的DATASTORE属性,继续介绍Oracle的FILTER属性. Oracle全文索引的FILTER属性主要是针对具有一定格式的文档,Oracle根据FILTER的设定来过 ...
- ORACLE TEXT FILTER PREFERENCE(三)
这篇文章继续介绍全文索引的FILTER属性,介绍对不同类型的数据采用不同类型的FILTER属性的方法. 如果Oracle索引的文档包括多种类型,比如doc文件.html文件.pdf文件.纯文本文件等等 ...
- ORACLE TEXT FILTER PREFERENCE(四)
这篇文章继续介绍全文索引的FILTER属性,介绍全文索引的PROCEDURE_FILTER属性. 对于一些复杂的需求,Oracle自定义的FILTER可能并不合适,Oracle支持用户自己编写用于FI ...
- ORACLE TEXT DATASTORE PREFERENCE(二)
这篇文章继续讨论全文索引的DATASTORE属性,介绍MULTI_COLUMN_DATASTORE. 如果被索引的文章是保存在数据库中,但是内容分布在多个列中,那么可以通过建立一个MULTI_COLU ...
- ORACLE TEXT DATASTORE PREFERENCE(一)
Oracle Text功能十分强大,可是文档上给出的例子总是过于简单,而且可能是为了减少篇幅,不少例子只给出了其中关键的几步,但是对于初学者而言,阅读这样的例子很难对全文索引的创建有一个清晰的了解,而 ...
- ORACLE TEXT LEXER PREFERENCE(二)
介绍完Oracle全文索引的BASIC_LEXER属性,这篇介绍Oracle中文语法属性CHINESE_LEXER和CHINESE_VGRAM_LEXER. Oracle全文索引的BASIC属性主要是 ...
- ORACLE TEXT DATASTORE PREFERENCE(五)
这篇文章继续讨论全文索引的DATASTORE属性,介绍DETAIL_DATASTORE. 全文索引运行将被索引的数据存储在子表的多条记录中,下面看一个简单的例子: SQL> CREATE TAB ...
- ORACLE TEXT DATASTORE PREFERENCE(四)
这篇文章继续讨论全文索引的DATASTORE属性,介绍URL_DATASTORE. 全文索引可以很方便的索引存储在INTERNET上的信息.在数据库中只需要存储需要索引的文章的URL就可以了. 由于目 ...
- ORACLE TEXT DATASTORE PREFERENCE(三)
这篇文章继续讨论全文索引的DATASTORE属性,介绍FILE_DATASTORE. 全文索引的对象一般是篇幅较大的文章,除了保存在数据库中的情况,另外一种常见的情况是以文件的形式保存在操作系统中. ...
最新文章
- 30多岁程序员老W,无奈选择转行!问题出在哪?
- centos 7手动更改源
- 为什么他们能做成功?关于创业的几点感想
- 用python让excel飞起来 pdf_老外用100个巨型吹风机, 想要靠它们飞起来, 你猜结果怎样...
- 电感发出声音怎么解决_如何解决多层PCB设计时的EMI
- 作者:李涛(1975-),男,博士,南京邮电大学计算机学院院长,南京邮电大学大数据研究院院长,美国佛罗里达国际大学正教授。...
- kafka基础之介绍和分布式集群搭建
- 【Luogu2085】最小函数值(优先队列)
- webrtc之SVC实现(十)
- 这些行业高薪职位最多
- Unity:通过脚本控制Shader中的Cutoff
- AE2022 Ver22.3内容更新点汇总 一文了解AE2022最新版本
- Linux驱动:网卡驱动分析之三--MAC驱动及PHY驱动框架了解
- 编程萌新必看!初学C语言必会的知识点,你学废了吗?
- 软碟通UltraISO 9.65.3237官方注册版
- 一文详解文本语义相似度的研究脉络和最新进展
- python实现3d扫描_树莓派制作的3D扫描仪
- 华大单片机如何实现软件复位重启
- 【OSGi】OSGi框架的三个层次
- Android 口令实现(自己复制,返回首页设置不显示)