ORACLE TEXT DATASTORE PREFERENCE(四)
這篇文章繼續討論全文索引的DATASTORE屬性,介紹URL_DATASTORE。
全文索引可以很方便的索引存儲在INTERNET上的信息。在數據庫中只需要存儲需要索引的文章的URL就可以了。
由于目前討論的是DATASTORE屬性,因此這個例子只索引HTML文章,對于其他需要使用FILTER屬性的文章,在以后討論。
SQL> CREATE TABLE T (ID NUMBER, DOCS VARCHAR2(1000));
表已創建。
SQL> INSERT INTO T VALUES (1, 'http://yangtingkun.itpub.net/');
已創建?1 行。
SQL> INSERT INTO T VALUES (2, 'http://www.itpub.net/');
已創建?1 行。
SQL> COMMIT;
提交完成。
SQL> CONN CTXSYS/CTXSYS@YANGTK
已連接。
SQL> BEGIN
2 CTX_DDL.CREATE_PREFERENCE('TEST_URL', 'URL_DATASTORE');
3 END;
4 /
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_URL');
索引已創建。
SQL> SELECT * FROM T WHERE CONTAINS(DOCS, 'ORACLE') > 0;
ID DOCS
---------- ------------------------------
2 http://www.itpub.net/
1 http://yangtingkun.itpub.net/
SQL> SELECT * FROM T WHERE CONTAINS(DOCS, 'YANGTINGKUN') > 0;
ID DOCS
---------- ------------------------------
2 http://www.itpub.net/
1 http://yangtingkun.itpub.net/
SQL> SELECT * FROM T WHERE CONTAINS(DOCS, 'TIMESTEN') > 0;
ID DOCS
---------- ------------------------------
1 http://yangtingkun.itpub.net/
當時看Oracle的例子感覺URL_DATASTORE很復雜,但是測試之后才發現,使用起來還是很簡單的。需要注意的就是,保證數據庫所在服務器可以連到INTERNET上。
如果沒有連接到被索引的頁面,那么Oracle并不會報錯,但是,所有的查詢都不會返回記錄。
SQL> DROP INDEX IND_T_DOCS;
索引已丟棄。
SQL> CREATE INDEX IND_T_DOCS ON T (DOCS) INDEXTYPE IS CTXSYS.CONTEXT
2 PARAMETERS ('DATASTORE CTXSYS.TEST_URL');
索引已創建。
SQL> SELECT * FROM T WHERE CONTAINS(DOCS, 'ORACLE') > 0;
未選定行
SQL> SELECT * FROM T WHERE CONTAINS(DOCS, 'YANGTINGKUN') > 0;
未選定行
SQL> SELECT * FROM T WHERE CONTAINS(DOCS, 'TIMESTEN') > 0;
未選定行
如果需要代理才能連到INTERNET上,可以設置URL_DATASTORE的HTTP_PROXY等屬性。URL_DATASTORE還包含很多的屬性,這里就不詳細的介紹了,Oracle的Text Reference文檔上有比較詳細的說明。
最后要說明的是,Oracle中僅僅保存被索引文檔的URL地址,因此,如果文檔本身發生了變化,Oracle是無法知道的,也無法去同步索引,這時必須通過修改索引列也就是URL地址列的方式來通知Oracle,被索引數據已經發生了變化。
使Oracle了解需要同步索引變化的最簡單的方法類似于:UPDATE T SET DOCS = DOCS WHERE ID = 1;
總結
以上是生活随笔為你收集整理的ORACLE TEXT DATASTORE PREFERENCE(四)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ORACLE TEXT DATASTOR
- 下一篇: ORACLE TEXT DATASTOR