关闭

ORACLE TEXT DATASTORE PREFERENCE(四)

503人阅读 评论(0) 收藏 举报

这篇文章继续讨论全文索引的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;

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:2092335次
    • 积分:19312
    • 等级:
    • 排名:第438名
    • 原创:157篇
    • 转载:624篇
    • 译文:1篇
    • 评论:43条
    最新评论