- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
oracle全文检索简单实例
原理简介:
Oracle通过其专利的词法分析器 lexer ,将文章中所有的表意单元(Oracle称为term)找出来,记录在一组以dr$开头的表中,同时记下该term出现的位置、次数、hash值等信息。检索时,Oracle从这组表中查找相应的term,并计算其出现频率,根据某个算法来计算每个文档的得分(score),即所谓的‘匹配率’。而lexer则是该机制的核心,它决定了全文检索的效率。Oracle针对不同的语言提供了三个不同的lexer:
basic_lexer:(缺省)
针对英语。它能根据空格和标点来将英语单词从句子中分离,还能自动将一些出现频率过高已经失去检索意义的单词作为‘垃圾’处理,如if , is等,具有较高的处理效率。但该lexer应用于汉语则有很多问题,由于它只认空格和标点,而汉语的一句话中通常不会有空格,因此,它会把整句话作为一个term,事实上失去检索能力。以‘中国人民站起来了’这句话为例,basic_lexer分析的结果只有一个term ,就是‘中国人民站起来了’。此时若检索‘中国’,将检索不到内容。
chinese_vgram_lexer:
专门的汉语分析器,支持所有汉字字符集(ZHS16CGB231280ZHS16GBKZHT32EUCZHT16BIG5ZHT32TRISZHT16MSWIN950ZHT16HKSCSUTF8)。该分析器按字为单元来分析汉语句子。‘中国人民站起来了’这句话,会被它分析成如下几个term: ‘中’,‘中国’,‘国人’,‘人民’,‘民站’,‘站起’,起来’,‘来了’,‘了’。可以看出,这种分析方法,实现算法很简单,并且能实现‘一网打尽’,但效率则是差强人意。
chinese_lexer:
这是一个新的汉语分析器,只支持utf8字符集。上面已经看到,chinese vgram lexer这个分析器由于不认识常用的汉语词汇,因此分析的单元非常机械,像上面的‘民站’,‘站起’在汉语中根本不会单独出现,因此这种term是没有意义的,反而影响效率。chinese_lexer的最大改进就是该分析器能认识大部分常用汉语词汇,因此能更有效率地分析句子,像以上两个愚蠢的单元将不会再出现,极大提高了效率。但是它只支持utf8,如果你的数据库是zhs16gbk字符集,则只能使用笨笨的那个Chinese vgram lexer.
简单例子:
假设当前Oracle用户为:nicholas
创建测试表: 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 create table TBL_TEST ID?? NUMBER 9 not null, NAME VARCHAR2 50 tablespace TBL_TEST_TS pctfree 10 initrans 1 maxtrans 255 storage initial 64K minextents 1 maxextents unlimited ; 插入测试数据:
设置词法分析器 lexer 1
2
3
4
5 SQL grant execute on ctxsys.ctx_ddl to nicholas;
SQL BEGIN
??2? ctx_ddl.create_preference name_lexer,chinese_lexer ; 3? END; 4? / 针对字段name建立全文索引 1 SQL create index tbl_test_index on tbl_test name indextype is ctxsys.context parameters lexer name_lexer ; 查看词法分析器分析结果 1 SQL select token_text,token_count from dr$tbl_test_index$i; 词法分析器分析结果
TOKEN_TEXT TOKEN_COUNT
设置自动更新索引job(在pl/sql developer中)
点击应用即可。
设置自动优化索引job
测试: 1 SQL select score 1 as score , id,name from tbl_test where contains name,中国,1 0 order by score 1 desc; ? 结果: 1
2
3
4
5
6
7
8 SCORE ID NAME 4 1 中国 4 2 中国人民 4 3 中国快睡觉路附近了 4 4 中国啊啊啊 4 5 中国搜救给i 4 7 中国就萨克邓丽君
您可能关注的文档
- 为什么每次电脑开机之后系统时间都会复位.doc
- OPT光新一代美容专家x.docx
- 为什么汽车在启动时会抖动得厉害.doc
- 为什么淘宝上搜不到自己的商品.doc
- OQS(欧盟)资料.doc
- OQO-003偏差处理操作程序14页.doc
- 为什么流程图作文难以得高分呢.docx
- 为什么用天然气切割.doc
- 为什么清明节是阳历4月5日而不是阴历.doc
- 为什么电动机保护器要模拟量输出.doc
- 2025至2030年中国隔震块总成市场现状分析及前景预测报告.docx
- 2025至2030年中国高温高压升降式电站止回阀市场现状分析及前景预测报告.docx
- 2025年中国三相变频器行业市场调查、投资前景及策略咨询报告.docx
- 2025至2030年中国聚乙烯粘胶保护膜市场现状分析及前景预测报告.docx
- 2025年综合类-助理理财规划师基础知识-理财规划法律基础历年真题摘选带答案(5卷单选题百道集合).docx
- 2025年中国镀金保护胶带行业市场调查、投资前景及策略咨询报告.docx
- 2025至2030年中国汽车液压制动软管总成市场现状分析及前景预测报告.docx
- 2025至2030年中国天然烟片胶市场现状分析及前景预测报告.docx
- 2025年中国活动秋千架行业市场调查、投资前景及策略咨询报告.docx
- 2025至2030年中国耐热陶瓷零件市场现状分析及前景预测报告.docx
文档评论(0)