使用Oracle Text建立模糊搜索系统

      DataBase 2005-10-8 9:42
建立Oracle Text索引:
CREATE INDEX SYSTEM.Table_test ON SYSTEM.Table_test(TextField)
INDEXTYPE IS CTXSYS.CONTEXT PARAMETERS ('LEXER WKSYS.WK_CHINESE_LEXER');

使用Oracle Text模糊查询:
Select Score(1),Table_test.* From Table_test
where Contains(TextField,'About(搜索内容)',1)>0;

可使用Score(1)来排序并结合分页存储过程。
Select * From (
Select RowNum rn,T.* From(
Select Table_test.* From Table_test where
Contains(TextField,'About(搜索内容)',1)>0
Order By Score(1) DESC)
) where rn between 1 and 10;

索引更新使用:
--同步更新索引
execute immediate
' alter index SEARCHTEST.INDEX_TEXT1_SB01 rebuild online ' ||
' parameters ( ''sync'' )' ;

--优化索引
execute immediate
' alter index SEARCHTEST.INDEX_TEXT1_SB01 rebuild online ' ||
' parameters ( ''optimize full maxtime unlimited'' )' ;
可建立系统调度来调用。
标签集:TAGS:
回复Comments() 点击Count()

回复Comments

{commenttime}{commentauthor}

{CommentUrl}
{commentcontent}