create or replace function p_split_keyword(p_input in varchar2)
return varchar2 as
v_return VARCHAR2(256);
cursor t1 is select * from keyword order by no;
begin
v_return:=p_input;
for rec in t1 loop
select replace(v_return,rec.word) into v_return from dual;
end loop;
return v_return;
end;
以上是创建切词方法。
附录:keyword表的结构
create table KEYWORD
(
PKID VARCHAR2(22) not null,
WORD VARCHAR2(100),
NO NUMBER
)
注释:word是要切的词组,no是一个切词顺序。
update test t1 set t1.keyword = p_split_keyword(t1.name);
调用切词方法
select t1.name,SYS.UTL_MATCH.edit_distance_similarity(t1.keyword,"要匹配的字符") similarity
from test
获取相似度