WEB开发网
开发学院数据库Oracle 如何更好的利用Oracle全文检索 阅读

如何更好的利用Oracle全文检索

 2009-03-20 13:10:33 来源:WEB开发网   
核心提示: 这样建立的全文检索索引,就会使用chinese_vgram_lexer作为分析器,如何更好的利用Oracle全文检索(3),步骤四建立索引通过以下语法建立全文索引CREATEINDEX[schema.]indexon[schema.]table(column)INDEXTYPEISctxs

这样建立的全文检索索引,就会使用chinese_vgram_lexer作为分析器。

步骤四 建立索引

通过以下语法建立全文索引

CREATE INDEX [schema.]index on [schema.]table(column) INDEXTYPE IS ctxsys.context [ONLINE]

LOCAL [(PARTITION [partition] [PARAMETERS('paramstring')]

[, PARTITION [partition] [PARAMETERS('paramstring')]])]

[PARAMETERS(paramstring)] [PARALLEL n] [UNUSABLE];

例:

CREATE INDEX ctx_idx_menuname ON pubmenu(menuname)

indextype is ctxsys.context parameters('lexer my_lexer')

步骤五 使用索引

使用全文索引很简单,可以通过:

select * from pubmenu where contains(menuname,'上传图片')>0

全文索引的种类

建立的Oracle Text索引被称为域索引(domain index),包括4种索引类型:

l CONTEXT

2 CTXCAT

3 CTXRULE

4 CTXXPATH

依据你的应用程序和文本数据类型你可以任意选择一种。

对多字段建立全文索引

很多时候需要从多个文本字段中查询满足条件的记录,这时就需要建立针对多个字段的全文索引,例如需要从pmhsubjects(专题表)的subjectname(专题名称)和briefintro(简介)上进行全文检索,则需要按以下步骤进行操作:

Ø  建议多字段索引的preference

以ctxsys登录,并执行:

EXEC ctx_ddl.create_preference(' ctx_idx_subject_pref',

'MULTI_COLUMN_DATASTORE');

Ø         建立preference对应的字段值(以ctxsys登录)

EXEC ctx_ddl.set_attribute(' ctx_idx_subject_pref ','columns','subjectname,briefintro');

Ø         建立全文索引
CREATE INDEX ctx_idx_subject ON pmhsubjects(subjectname)

INDEXTYPE ISctxsys.CONTEXT PARAMETERS('DATASTORE ctxsys.ctx_idx_subject_pref lexer my_lexer')
Ø         使用索引
select * from pmhsubjects where contains(subjectname,'李宇春')>0

上一页  1 2 3 4 5  下一页

Tags:如何 更好 利用

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接