ORACLE TEXT LEXER PREFERENCE(一)

转载 2012年03月31日 15:01:03

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


Oracle全文索引的LEXER属性用于处理各种不同的语言。最基本的英文使用BASE_FILTER,而如果需要使用中文则可以使用CHINESE_VGRAM_LEXER或CHINESE_LEXER。

这篇文章简单说明BASIC_LEXER属性。BASIC_LEXER属性支持多种语言,比如英语、德语、荷兰语、挪威语、瑞典语等等。

BASIC_LEXER除了支持多种语言,还可以设置多种属性。比如这个例子中介绍的索引的大小写设置:

SQL> CREATE TABLE T (ID NUMBER, DOCS VARCHAR2(1000));

表已创建。

SQL> INSERT INTO T VALUES (1, 'This is a example for the basic lexer');

已创建 1 行。

SQL> INSERT INTO T VALUES (2, 'And we make a example for a mixed spell indexs.');

已创建 1 行。

SQL> INSERT INTO T VALUES (3, 'So the word in UPPER format must be query in UPPER');

已创建 1 行。

SQL> INSERT INTO T VALUES (4, 'And Mixed Spell Word must be Query in Mixed.');

已创建 1 行。

SQL> COMMIT;

提交完成。

SQL> CREATE INDEX IND_T_DOCS ON T (DOCS) INDEXTYPE IS CTXSYS.CONTEXT
2 PARAMETERS ('LEXER CTXSYS.BASIC_LEXER');

索引已创建。

SQL> SELECT ID FROM T WHERE CONTAINS(DOCS, 'MIXED') > 0;

ID
----------
4
2

SQL> DROP INDEX IND_T_DOCS;

索引已丢弃。

SQL> CONN CTXSYS/CTXSYS@YANGTK
已连接。
SQL> BEGIN
2 CTX_DDL.CREATE_PREFERENCE('TEST_BASIC_LEXER', 'BASIC_LEXER');
3 CTX_DDL.SET_ATTRIBUTE('TEST_BASIC_LEXER', 'MIXED_CASE', 'YES');
4 END;
5 /

PL/SQL 过程已成功完成。

SQL> CONN YANGTK/YANGTK@YANGTK
已连接。
SQL> CREATE INDEX IND_T_DOCS ON T (DOCS) INDEXTYPE IS CTXSYS.CONTEXT
2 PARAMETERS ('LEXER CTXSYS.TEST_BASIC_LEXER');

索引已创建。

SQL> SELECT ID FROM T WHERE CONTAINS(DOCS, 'MIXED') > 0;

未选定行

SQL> SELECT ID FROM T WHERE CONTAINS(DOCS, 'Mixed') > 0;

ID
----------
4

如果不进行设置,Oracle在建立索引时会将所有的字母变为大写。如果进行了设置,可以使索引区分大小写,

相关文章推荐

全文索引--两种中文词法分析器比较(chinese_vgram_lexer chinese_lexer)

本文通过实验阐述了关于全文索引中两种词法分析器的分词效果

Oracle模糊查询之(5.1认识全文索引之什么是分词[lexer])oracle Text 全文检索功能对中文分词的支持情况

http://hi.baidu.com/lewutian 下面例子在XE中测试通过。 准备工作: CREATE   TABLE issues (     ID         NUMBER,   ...
  • haiross
  • haiross
  • 2013年10月23日 17:00
  • 2989

ORACLE TEXT FILTER PREFERENCE(二)

这篇文章继续介绍全文索引的FILTER属性,介绍Oracle的INSO_FILTER属性。 Oracle的全文索引除了可以支持文本文件外,还可以支持多种文档格式,对于...

ORACLE TEXT DATASTORE PREFERENCE(六)

这篇文章继续讨论全文索引的DATASTORE属性,介绍NESTED_DATASTORE。 全文索引支持将数据存储在多个列中或存储在主子表中,全文索引还支持将数据存储在嵌套表中...

ORACLE TEXT FILTER PREFERENCE(四)

这篇文章继续介绍全文索引的FILTER属性,介绍全文索引的PROCEDURE_FILTER属性。 对于一些复杂的需求,Oracle自定义的FILTER可能并不合适,O...

ORACLE TEXT DATASTORE PREFERENCE(三)

这篇文章继续讨论全文索引的DATASTORE属性,介绍FILE_DATASTORE。 全文索引的对象一般是篇幅较大的文章,除了保存在数据库中的情况,另外一种常见的情况是以文件...

ORACLE TEXT DATASTORE PREFERENCE(四)

这篇文章继续讨论全文索引的DATASTORE属性,介绍URL_DATASTORE。 全文索引可以很方便的索引存储在INTERNET上的信息。在数据库中只需要存储需要索引的文章的URL...

ORACLE TEXT DATASTORE PREFERENCE(五)

这篇文章继续讨论全文索引的DATASTORE属性,介绍DETAIL_DATASTORE。 全文索引运行将被索引的数据存储在子表的多条记录中,下面看一个简单的例子: ...

ORACLE TEXT DATASTORE PREFERENCE(一)

Oracle Text功能十分强大,可是文档上给出的例子总是过于简单,而且可能是为了减少篇幅,不少例子只给出了其中关键的几步,但是对于初学者而言,阅读这样的例子很难对全文索引的创建有一个清晰的了解,而...

Oracle Text Literals (Q quote_delimiter )

在SQL或PL/SQL中,
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ORACLE TEXT LEXER PREFERENCE(一)
举报原因:
原因补充:

(最多只允许输入30个字)