ORACLE 10g全文检索

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ORACLE全文检索实现 全文检索实现
• 第三步:在摘要字段上创建索引 • *创建索引,文本索引主要有两种CONTEXT和CTXCAT,使用默 认的参数 • */ • --drop index demo_abstract; • create index demo_abstract on textdemo(book_abstract) • indextype is ctxsys.context • -parameters('datastore ctxsys.default_datastore filter ctxsys.au to_filter ') • ;
ORACLE全文检索实现 全文检索实现
• 第二步:使用创建的用户登录,创建要进行全文检索 的数据表,准备数据 • create table textdemo( • id number not null primary key, • book_author varchar2(20),--作者 • publish_time date,--发布日期 • title varchar2(400),--标题 • book_abstract varchar2(2000),--摘要 • path varchar2(200)--路径 • );
优化索引
• create or replace procedure cont_optimize_index as begin ctx_ddl.optimize_index('demo_abstract','FULL'); ctx_ddl.optwk.baidu.commize_index('demo_path','FULL'); • end; / • VARIABLE jobno number; • BEGIN DBMS_JOB.SUBMIT(:jobno,'cont_optimize_index();', SYSDATE, 'SYSDATE + 1'); commit; END;
ORACLE全文检索实现 全文检索实现
• 第六步:再次测试查询 • select score(20),t.* from textdemo t where con tains(book_abstract,'移动城堡 or 俄罗斯 ',20)>0;
ORACLE全文检索实现 外部文件 全文检索实现-外部文件 全文检索实现
• • •
ORACLE全文检索实现 外部文件 全文检索实现-外部文件 全文检索实现
• • • • • • • • • • • • • • • • 第三步:在路径上建立索引 begin --ctx_ddl.drop_preference('my_lexer'); ctx_ddl.create_preference('my_lexer','chinese_lexer'); end; / --drop index demo_path; create index demo_path on textdemo(path) indextype is ctxsys.context parameters(' datastore my_store filter my_filter lexer my_lexer ');
ORACLE全文检索流程 全文检索流程
• Oracle Text应用的实现流程: • 数据装载—> 索引数据—>执行检索
ORACLE全文检索体系架构 全文检索体系架构
ORACLE全文检索实现 全文检索实现
• 第一步:创建一个用户 ,赋予用户三个角色, 其中有一个为CTXAPP角色,以便该用户可以 使用与全文检索相关的PROCEDURE
同步索引
• create or replace procedure cont_sync_index as begin ctx_ddl.sync_index('demo_abstract'); ctx_ddl.sync_index('demo_path'); • end; • VARIABLE jobno number; • BEGIN DBMS_JOB.SUBMIT(:jobno,'cont_sync_index();', SYSDATE, 'SYSDATE + (1/24/4)'); commit; END;
• • • • • • • • • • • 第三步:在路径上建立索引 begin --ctx_ddl.drop_preference('my_filter'); ctx_ddl.create_preference('my_filter','auto_filter'); end; / begin --ctx_ddl.drop_preference('my_store'); ctx_ddl.create_preference('my_store','file_datastore'); /* --设置文件的路径,由于此处数据表中已经包含了路径不需要再进行设置,如果表中 只有文件名称无路径信息, 需要设置该参数,如果文件在不同的路径下,也可以设置多 个路径WINDOWS下用";"分开,UNIX用":", 限制:设置目录后的文件名不应有路径信息 ,避免不同的目录下有相同的文件名. ctx_ddl.set_attribute('my_store','path',‘D:\demo;E:\textsearch'); */ end;
全文检索结构
全文检索技术
• • • • 互联网搜索引擎技术:以Baidu 为代表 企业级搜索引擎技术:以TRS为代表 开源搜索引擎技术: 以Lcee为代表 数据库搜索引擎技术 :以Oracle Text为代表
ORACLE TEXT
• 支持增量索引、多种类型字段索引、多字段索引 • 支持4种索引类型:CONTEXT(常用), CTXCAT, CTXRLE or CTXXPATH • 支持多种词法分析器: 1、basic_lexer(英文词法) 2 chiese_vgram_lexer( 2、chiese_vgram_lexer(专门的汉语分析器,支持所有汉字字符 , 集ZHS16CGB231280 ZHS16GBK ZHT32EC ZHT16BIG5 ZHT32TRIS ZHT16MSWI950 ZHT16HKSCS TF8 ))、 3、chiese_lexer: 这是一个新的汉语分析器,只支持tf8字符集 • 支持多字段检索,日期范围检索,检索结果自定义排序(数据 表中的任意字段)等 • 提供丰富的检索语法:EQIValece (=) NEAR (;) weight (*), threshold (>) MINUS (-) {} % ? ! () AND (&) OR (|) ACCMlate (,) • 性能与数据库无缝集成,百万记录秒级检索
ORACLE全文检索实现 全文检索实现
• 第四步:测试查询 • select score(20),t.* from textdemo t where con tains(book_abstract,'移动城堡 or 俄罗斯 ',20)>0;
ORACLE全文检索实现 全文检索实现
• 第五步:重建分词索引 • begin • --ctx_ddl.drop_preference('my_lexer'); • ctx_ddl.create_preference('my_lexer','chinese_vgram_lexer') ; • end; • • --drop index demo_abstract; • create index demo_abstract on textdemo(book_abstract) • indextype is ctxsys.context • parameters('datastore ctxsys.default_datastore filter ctxsys. auto_filter lexer my_lexer') • ;
科技的实力、创新的活力、服务的诚信力 科技的实力、创新的活力、
ORACLE
全文检索专题
2010-02-23
1、全文检索基础 、
2、全文检索技术 、
3、ORACLE全文检索 ORACLE全文检索
全文检索功能
• • • • 建立索引 处理查询返回结果集 增加索引 优化索引结构等
全文检索结构
• • • • 索引引擎 查询引擎 文本分析引擎 结外接口
ORACLE全文检索实现 外部文件 全文检索实现-外部文件 全文检索实现
• 第四步:测试查询 • select t.* from textdemo t where contains(path, ‘产品 and 合同’)>0 • 联合第一次对book_abstract做的索引进行查 询 • select t.* from textdemo t where contains(book _abstract,‘电影’)>0 AND contains(path,‘产 品 and 光端机')>0
相关文档
最新文档