Oracle全文索引之五 测试

###测试

在前面的基础上,myoracle用户下执行检索:

select * from yu_test where contains(name,'重庆')>0

结果:

ID NAME
1 重庆市沙坪坝区
4 重庆市两江新区

####使用chinese_vgram_lexer分析器和chinese_lexer分析器比较

执行如下sql查看不同分析器的分词情况:

SELECT token_text, token_count FROM dr$YU_TEST_INDEX$i
  • 使用chinese_vgram_lexer分析器的分词情况:

TOKEN_TEXT TOKEN_COUNT
上海 2
东新 1
东方 1
两江 1
京市 1
件园 2
北京 1
区 4
区金 1
园 2
国家 1
坝区 1
坪坝 1
城区 1
天府 1
家软 1
市两 1
市国 1
市天 1
市沙 1
市浦 1
市西 1
市青 1
庆市 2
府软 1
成都 2
新区 2
方明 1
无锡 1
明珠 1
桥镇 1
江新 1
江苏 1
沙坪 1
浦东 1
海东 1
海市 1
珠 1
省无 1
羊区 1
苏省 1
西城 1
软件 2
都市 2
重庆 2
金桥 1
锡市 1
镇 1
青羊 1

  • 使用chinese_lexer分析器的分词情况:

TOKEN_TEXT TOKEN_COUNT

上海 1
上海市 1
东方 1
两江 1
北京市 1
区 2
园 2
国家 1
坝区 1
坪坝 1
天府 1
市 1
成都市 2
新区 2
无锡 1
明珠 1
桥镇 1
江 1
江苏省 1
沙坪 1
浦东 1
羊区 1
西城区 1
软件 2
重庆市 2
金桥 1
镇 1
青羊 1

通过对比可以发现:

  • chinese_lexer分析器分词比较严格,按常用词汇进行拆分存储。比如“中国重庆”,只会被拆分为“中国”、“重庆”两个词组。

  • chinese_vgram_lexer分析器则按字为单元来进行拆分,比如“中国重庆”,可以拆分为“中”、“中国“、”国重”、“重庆”、“庆”五个词组。这种方式的好处是能够将所有有可能的词组全部保存进索引表,使得数据不会遗漏。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值