知識(shí)庫(kù)作為信息咨詢(xún)的一個(gè)重要功能,為客戶(hù)電話(huà)咨詢(xún)提供信息來(lái)源。在實(shí)際應(yīng)用中,客戶(hù)服務(wù)中心會(huì)承擔(dān)業(yè)務(wù)咨詢(xún)等業(yè)務(wù)。這些業(yè)務(wù)要求坐席人員能快速、正確地判斷及解答問(wèn)題。
【詳細(xì)介紹:http://blog.sina.com.cn/s/blog_b3b956ae0101duq3.html)。
在知識(shí)庫(kù)的使用過(guò)程中,我們希望能在最短的時(shí)間找到所需的知識(shí)。如果系統(tǒng)響應(yīng)時(shí)間長(zhǎng)或者查詢(xún)的結(jié)果不理想,那知識(shí)庫(kù)庫(kù)使用的效率將為大大折扣。億倫公司研發(fā)的infoKM知識(shí)庫(kù)系統(tǒng)使用了oracle全文檢索解決了以上問(wèn)題。本文將詳細(xì)介紹oracle全文檢索技術(shù)在infoKM的應(yīng)用。
一,Oracle 全文檢索技術(shù)
Oracle實(shí)現(xiàn)全文檢索的的組件在Oracle9i中稱(chēng)為Oracle Text, Oracle Text支持Oracle數(shù)據(jù)庫(kù)所支持的大多數(shù)語(yǔ)言(包括中文)的基本全文搜索功能. 不使用全文所有功能,也有其他辦法Oracle數(shù)據(jù)庫(kù)中搜索文本,比如INSTR函數(shù)和LIKE操作,但是對(duì)海量的文本數(shù)據(jù)進(jìn)行搜索時(shí)將導(dǎo)致全表掃描,會(huì)非常消耗資源.
創(chuàng)建全文索引的步驟:
1, 檢查數(shù)據(jù)庫(kù)中是否有ctxsys用戶(hù)和ctxapp角色. 默認(rèn)安裝情況下,ctxsys用戶(hù)是被鎖定的,因此要先解鎖ctxsys的用戶(hù)
2, 給指定用戶(hù)授權(quán)(用ctxsys用戶(hù)登錄),
授權(quán)語(yǔ)句:grant execute on ctx_ddl to infocrm_rep.
3, 建立一個(gè)preference,設(shè)置詞法分析器(lexer).( ctxsys登錄)
exec ctx_ddl.create_preference ('my_lexerrep', 'chinese_vgram_lexer')
Oracle針對(duì)不同的語(yǔ)言提供了不同的lexer.
通常能用到其中的三個(gè): basic_lexer,chinese_vgram_lexer,chinese_lexer。basic_lexer針對(duì)英語(yǔ),chinese_vgram_lexer專(zhuān)門(mén)的漢語(yǔ)分析器,支持所有漢字字符集。chinese_lexer只支持utf8字符集
4,建立preference對(duì)應(yīng)的字段值(ctxsys登錄)
exec ctx_ddl.set_attribute('ctx_idx_subject_pref','columns','content,depict')
5,建立全文索引(infocrm_rep登錄)
create index ctx_idx_subject on knt_zhinnan(content) indextype is
ctxsys.context parameters('datastore ctxsys.ctx_idx_subject_pref lexer ctxsys.my_lexerrep')
6,創(chuàng)建索引
create index myindex on knt_zhinnan(content_py) indextype is ctxsys.context parameters('lexer ctxsys.my_lexerrep');
通過(guò)以上6步,全文索引就建立好了.使用方法:
select * from knt_zhinnan where contains(CONTENT,'測(cè)試標(biāo)題')>0