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