程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle數據庫全文索引查詢模板的使用

Oracle數據庫全文索引查詢模板的使用

編輯:Oracle數據庫基礎

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved