时间:2021-07-01 10:21:17 帮助过:16人阅读
首先让我们进行一个关于中文词法分析器的比较,测试过程如下: 建表 create table test (str varchar2(100)) ;create table test1(str varchar2(100)) ; 插入数据 insert into test values (中华人员共和国) ;insert into test1values (中华人员共和国) ; 创
create table test (str varchar2(100)) ; create table test1(str varchar2(100)) ;插入数据
insert into test values (‘中华人员共和国’) ; insert into test1values (‘中华人员共和国’) ;创建两个关于中文的分析器
exec ctx_ddl.create_preference('my_lexer','CHINESE_VGRAM_LEXER') ; exec ctx_ddl.create_preference('my_lexer1','CHINESE_LEXER') ;创建全文索引
CREATE INDEX test1_idx ON test1(str) INDEXTYPE IS ctxsys.CONTEXT PARAMETERS('LEXER my_lexer1'); CREATE INDEX test_idx ON test(str) INDEXTYPE IS ctxsys.CONTEXT PARAMETERS('LEXER my_lexer');查看全文索引生成的词表
dexter@STARTREK>select * from DR$TEST_IDX$I ; TOKEN_TEXT TOKEN_TYPE TOKEN_FIRST TOKEN_LAST TOKEN_COUNT ---------------------------------------------------------------- ---------- ----------- ---------- ----------- TOKEN_INFO ------------------------------------------------------------------------------------------------------------------------------------------------------ 共和 0 1 1 1 008805 国 0 1 1 1 008807 和国 0 1 1 1 008806 华人 0 1 1 1 008802 人员 0 1 1 1 008803 员共 0 1 1 1 008804 中华 0 1 1 1 008801chinese_lexer
dexter@STARTREK>select * from DR$TEST1_IDX$I ; TOKEN_TEXT TOKEN_TYPE TOKEN_FIRST TOKEN_LAST TOKEN_COUNT ---------------------------------------------------------------- ---------- ----------- ---------- ----------- TOKEN_INFO ---------------------------------------------------------------------------------------------------------------------------- 共和国 0 1 1 1 008803 人员 0 1 1 1 008802 中华 0 1 1 1 008801分词效果:
分词效果:
chinese_ lexer |
chinese_vgram_lexer |
共和国 |
共和 |
人员 |
国 |
中华 |
和国 |
|
华人 |
|
人员 |
|
员共 |
|
中华 |