oracle全文索引的简单配置

1.创建数据存储定义(Datastore),使用多列数据存储在多列上创建全文索引
BEGIN
    CTX_DDL.CREATE_PREFERENCE('INFOGRID_COM_DATASTORE','MULTI_COLUMN_DATASTORE');
CTX_DDL.SET_ATTRIBUTE('INFOGRID_COM_DATASTORE','columns','NAME,ADDRESS,BUSINESS_ZONE,FAREN,FUND,INTRODUCTION');
END;


2.创建词法分析器(Lexer)
BEGIN
   CTX_DDL.CREATE_PREFERENCE('INFOGRID_LEXER','CHINESE_LEXER');
END;


3.创建全文索引(索引在DML提交后自动同步更新)
CREATEINDEXINFOGRID_COM_FULL_IDXONg2b_com(NAME)
INDEXTYPE IS CTXSYS.CONTEXT
PARAMETERS(
  'LEXER INFOGRID_LEXER
   DATASTORE INFOGRID_COM_DATASTORE
   SYNC (ON COMMIT)'--使用实时同步(DML提交时同步全文索引)
)
--手工同步索引(如果使用自动同步,这步可省略)
begin
ctx_ddl.sync_index('INFOGRID_COM_FULL_IDX');
end;


4.使用全文索引查询(按照出现频率排序)
selectscore(0),t.*fromg2b_com twherecontains(NAME,'条件一,条件二',0)>0orderbyscore(0)desc


5.删除全文索引(删除词法分析器,删除数据存储定义,删除索引)
begin
ctx_ddl.drop_preference('INFOGRID_COM_DATASTORE');--删除数据储存定义DataStore
ctx_ddl.drop_preference('INFOGRID_LEXER');--删除词法分析器
end;
dropindexINFOGRID_COM_FULL_IDX;--删除索引

你可能感兴趣的:(oracle)