Oracle数据库全文索引查询模板的使用_Oracle数据库_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

Oracle数据库全文索引查询模板的使用

作者:黑客防线网安Oracle维护基地 来源:黑客防线网安Oracle维护基地 浏览次数:0

黑客防线网安网讯:Oracle全文索引的查询模板功能可以对在CONTEXT索引上使用CATSEARCH语法,或者在CTXCAT索引上使用CONTAINS语法。 通过一个例子说明查询模板的使用: SQL> CREATE TABLE T (ID NUMBER, DOCS V...

Oracle全文索引的查询模板功能可以对在CONTEXT索引上使用CATSEARCH语法或者在CTXCAT索引上使用CONTAINS语法

通过一个例子说明查询模板的使用:

SQL> CREATE TABLE T (ID NUMBER, DOCS VARCHAR2(1000));

表已创建

SQL> INSERT INTO T VALUES (1, 'IT IS A EXAMPLE FOR QUERY TEMPLETE.');

已创建 1 行。

SQL> INSERT INTO T VALUES (2, 'USING THE TEMPLETE CONTAIN OPERATION CAN BE PERFORM ON CTXCAT INDEX.');

已创建 1 行。

SQL> INSERT INTO T VALUES (3, 'AND THE CATSEARCH OPERATION CAN BE PERFORM ON CONTENT INDEX.');

已创建 1 行。

SQL> COMMIT;

提交完成。

SQL> CREATE INDEX IND_T_DOCS ON T(DOCS) INDEXTYPE IS CTXSYS.CONTEXT;

索引已创建。

SQL> SELECT ID FROM T WHERE CONTAINS(DOCS, 'TEMPLETE', 1) > 0;
ID
----------
2
1
SQL> SELECT ID FROM T WHERE CONTAINS(DOCS, '
2
3 TEMPLETE
4
5
6 ', 1) > 0;
ID
----------
2
1

上面这个给出了对于CONTEXT索引使用CATSEARCH语法的例子不过这种用途的实际意义不大,不过下面的例子的实际意义就比较大了:

SQL> DROP INDEX IND_T_DOCS;

索引已丢弃。

SQL> CREATE INDEX IND_T_DOCS ON T(DOCS) INDEXTYPE IS CTXSYS.CTXCAT;

索引已创建。

SQL> SELECT ID FROM T WHERE CATSEARCH(DOCS, '$USE', NULL) > 0;

未选定行

SQL> SELECT ID FROM T WHERE CATSEARCH(DOCS, '
2
3 $USE
4
5
6 ', NULL) > 0;
ID
----------
2
SQL> SELECT ID FROM T WHERE CATSEARCH(DOCS, ';((EXAMPLE, TEMPLETE), 3)', NULL) > 0;

未选定行

SQL> SELECT ID FROM T WHERE CATSEARCH(DOCS, ';((EXAMPLE, TEMPLETE), 3)', NULL) > 0;

未选定行

SQL> SELECT ID FROM T WHERE CATSEARCH(DOCS, '
2
3 ;((EXAMPLE, TEMPLETE), 3)
4
5 ', NULL) > 0;
ID
----------
1

CATSEARCH语法本身不支持ABOUT、STEM、FUZZY、NEAR等操作,但是使用了查询模板,这些本来CONTAINS语法才支持的操作都可以在CTXCAT索引上使用了。

    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-12524-1.html
网站维护教程更新时间:2012-03-23 00:42:06  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer