易截截图软件、单文件、免安装、纯绿色、仅160KB

oracle全文索引之About_INDEX_THEMES操作

Oracle的全文索引除了支持文字匹配查询,还支持对文章涵义的查询。这是通过ABOUT操作实现的。
Oracle默认情况下支持英文和法文的文章涵义支持。其他语言可以添加通过用户自定义的语言库来实现相应的功能。

这之前需要先安装Companion CD 的Oracle Database 10g Products Installation
Type,其中包括了Oracle Text Supplied Knowledge
Bases,否则在建立含有about的索引时会出错。Companion CD可直接在官网下载,安装也非常简单。
下面看看英文环境下简单的ABOUT操作用法:
SQL> conn myuser/myuser
Connected.
SQL> CREATE TABLE T (ID NUMBER PRIMARY KEY, DOCS VARCHAR2(1000));
Table created.
SQL> INSERT INTO T VALUES (1, 'You can augment the knowledge base to define concepts and terms specific to your
industry or query application. When you do so, ABOUT queries are more precise for the added concepts.');
1 row created.
SQL> INSERT INTO T VALUES (2, 'ABOUT queries perform best when you create a theme component in your index. Theme
components are created by default for English and French.');
1 row created.
SQL> COMMIT;
Commit complete.
SQL> CREATE INDEX IND_T_DOCS ON T(DOCS) INDEXTYPE IS CTXSYS.CONTEXT;
Index created.
SQL> SELECT ID from T WHERE CONTAINS(DOCS, 'ABOUT(queries)') > 0;
ID
----------
1
2
SQL> SELECT ID from T WHERE CONTAINS(DOCS, 'queries') > 0;
ID
----------
1
2
默认的LEXER是BASIC_LEXER,因此,可以ABOUT操作已经可以起作用了,但是由于采用默认设置,ABOUT查询的精度不高。虽然可以查询到,但是这个单词本身就是在文章中出现的,如果使用文章中没有出现的单词,ABOUT还是查询不到。
SQL> SELECT ID from T WHERE CONTAINS(DOCS, 'ABOUT(definition)') > 0;
no rows selected
SQL> SELECT ID from T WHERE CONTAINS(DOCS, 'definition') > 0;
no rows selected
如果希望提高ABOUT操作的查询精度,可以设置BASIC_LEXER中的INDEX_THEMES属性的值为YES。
SQL> BEGIN
2 CTX_DDL.CREATE_PREFERENCE('TEST_ABOUT', 'BASIC_LEXER');
3 CTX_DDL.SET_ATTRIBUTE('TEST_ABOUT', 'INDEX_THEMES', 'YES');
4 CTX_DDL.


相关文档:

oracle 表空间操作

oracle表空间操作详解
  1
  2
  3作者:   来源:    更新日期:2006-01-04 
  5
  6 
  7建立表空间
  8
  9CREATE TABLESPACE data01
 10DATAFILE '/ora ......

oracle基本操作

describe  TABLE_NAME;   --描述
----------------------------------------------------------------
create table as select XXXXXX
insert into TABLE_NAME (reac_1,reac_2.....) values(v1,v2)
insert into TABLE_NAME (select * from ..........)
update TABLE_NAME set reac_1=v1,.............. ......

Oracle问题汇总

遇到的一些Oracle的零碎问题:
1、使用自定义异常,raise_application_error(异常编号,异常信息)。
     A、异常编号注意不要超长,一般到5位
     B、异常信息是一个字符串信息
     C、配合存储过程中exception使用 ......

oracle全文索引之LEXER


介绍完Oracle全文索引的FILTER属性,继续介绍Oracle的LEXER属性。

Oracle全文索引的LEXER属性用于处理各种不同的语言。最基本的英文使用BASE_FILTER,而如果需要使用中文则可以使用CHINESE_VGRAM_LEXER或CHINESE_LEXER。
这篇文章简单说明BASIC_LEXER属性。BASIC_LEXER属性支持多种语言,比如英语、德语、荷兰语、挪 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号