当前位置:首页 > 网络编程 > 数据库 > Oracle > Oracle数据库全文索引查询模板的使用

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

点击次数:25 次 发布日期:2008-11-22 17:17:14 作者:源代码网
源代码网推荐

  
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索引上使用了。

 

源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华