??xml version="1.0" encoding="utf-8" standalone="yes"?>不卡的av一区,精品一区视频,色香蕉久久蜜桃http://www.aygfsteel.com/machilansing/category/14191.htmlLansing--Coding 不是? zh-cnFri, 02 Mar 2007 06:50:04 GMTFri, 02 Mar 2007 06:50:04 GMT60ORACLE 全文索引功能实现http://www.aygfsteel.com/machilansing/archive/2006/08/17/ORACLE.htmlLansingLansingThu, 17 Aug 2006 01:33:00 GMThttp://www.aygfsteel.com/machilansing/archive/2006/08/17/ORACLE.htmlhttp://www.aygfsteel.com/machilansing/comments/64049.htmlhttp://www.aygfsteel.com/machilansing/archive/2006/08/17/ORACLE.html#Feedback0http://www.aygfsteel.com/machilansing/comments/commentRss/64049.htmlhttp://www.aygfsteel.com/machilansing/services/trackbacks/64049.htmlORACLE 全文索引功能实现学习(fn)W记

前言Q?数据库工E师众所周知的一个事实是Q当Ҏ(gu)据库里的文本字段q行like索的时候,M数据索引都是不v作用的,q样也就Dpȝ?x)承担额外的开销和负载压力,对于庞大的数据记录,对其中的文本字段q行关键字匹配,p定会(x)存在非常严重的效率障和性能障碍。因此,Z文本的全文烦引技术也逐渐兴v?
全文索引的技术原理ƈ不复杂,Ҏ(gu)落性的文本内容q行逐词分解Qƈ针对词出现频率,出现位置q行标记Q按照词本n的编码顺序存储ؓ(f)索引文g。这P在针对关键词q行索的时候,׃?x)遍历所有的文本数据记录Q而是Ҏ(gu)索引文gq行有序查找Q这里面一个显见的事实是,通过有序索引查找关键词,对于量的数据记录而言Q也只需要很次数的指针跌{Q(数量为X的烦引记录,查询特定记录的指针蟩转次数最多ؓ(f)Log2(x)。)卛_完成搜烦Q而无d整遍历整个数据表或文仉?
但是全文索引技术的实现却ƈ不简单,针对中文的尤其如此,英文文本中,I格是天然的分词标记Q而中文段落却无法通过q样单的途径分词Q因此基于常用语词典和一些语a识别规则的分词技术成ZU非帔R的技术门槛,q好Q很多商业公司提供了非常成熟的商业品,使我{可以坐享其成,快速搭建全文搜索的q_?

ORACLE INTERMEDIA介绍
ORACLE Intermedia是ORACLE公司官方发布的用来管理多媒体数据的数据库理模块Q通过它可以进行有效的视频Q音频,囄{文件的l一存储Q调用和相关处理Q同时其中也包括一个Oracle Intermdedia Text功能模块Q能够对多种格式文档q行分词索引处理Q也提供了用自然语法或高查询Ҏ(gu)q行跨文本查询的途径Q可以查询word, PDF,RTF{格式的文g和数据?
Oracle Intermedia 的烦引效率和查询效率Q据一些公开数据上看要远高于Microsoft的Index ServerQ而且本nhq_无关Ҏ(gu),另外作ؓ(f)数据库品,可以很好的和数据库应用进行整合,q一点也是纯_的文g索引pȝ所无法实现的。当Ӟ作ؓ(f)通用的数据库产品QOracle不可能针对全文烦引做到最大限度的优化Q因此对于高q发大容量的搜烦引擎应用QOracle的方案可能就无法满Q这一点也是必L前声明的?

全文索引实现步骤
步骤1Q查看Oracle Intermedia是否正确安装。Oracle Intermdeia是Oracle的一个附带模块,安装q程中选择卛_?
步骤2Q设|词法解析器
oracleҎ(gu)不同语言Q有不同的词法解析器Q以下说明我们可能用到的三个
basic_lexerQ针对英语环境,以空gؓ(f)分词标记Q同时能分L一些“噪音”单词,?“if? “is”等?
chinese_vgram_lexerQ专用的汉语分析器,按字为单元分析中文,法单,可以一|打中文用词,但是效率差强人意?
chinese_lexerQ可以识别大部分常用短语和词汇,不会(x)产生大量冗余数据Q有很好的实用性,但是语言支持只能为UTF-8~码Q不支持zhs16gbk字符集?
以ctxsys用户登陆pȝQ执行:(x)
begin ctx_ddl.create_preference('my_lexer','chinese_vgram_lexer'); end;
q里假设我们的语法解析器命名为my_lexerQ这个名UC可以Ҏ(gu)实际应用变化?
步骤3Q徏立烦引字D?
我的试用例保存在systemI间Q表名ؓ(f)my_docsQ字D名为docQ字D늱型ؓ(f)blobQ存储标准word doc文g?
仍旧保持ctxsys帐户登陆Q执行如下操?
create index system.myindex on system.my_docs(doc) indextype is ctxsys.context parameters(‘lexer?’my_lexer? ;
步骤4Q同步操作(syncQ及(qing)优化操作
以system 登陆Q同步操作执?
exec ctx_ddl.sync_index('myindex');

创徏同步定时d代码如下
VARIABLE jobno number;
BEGIN
  DBMS_JOB.SUBMIT(:jobno,'ctx_ddl.sync_index(''myindex'');',
  SYSDATE, 'SYSDATE + (1/24/4)');
  commit;
  END;
/
以system登陆Q优化烦引操作执?
exec ctx_ddl.optimize_index('myindex','FULL');
创徏优化定时d代码如下
VARIABLE jobno number;
  BEGIN
  DBMS_JOB.SUBMIT(:jobno,'ctx_ddl.optimize_index(''myindex'',''FULL'');',
  SYSDATE, 'SYSDATE + 1');
  commit;
  END;
/
步骤5Q测?
select id from my_docs where contains(doc,'关键?)>0
ȝQ?
该学?fn)笔记内容大部分可以通过搜烦引擎扑ֈQƈ非本人原创内容,本文全部l个人在windowsq_下,在oracle 9i下测试完成,留记录Qؓ(f)日后的项目和产品开发做技术准备?

Lansing 2006-08-17 09:33 发表评论
]]>
全文索引—CONTAINS语法http://www.aygfsteel.com/machilansing/archive/2006/08/17/CONTAINS.htmlLansingLansingThu, 17 Aug 2006 01:31:00 GMThttp://www.aygfsteel.com/machilansing/archive/2006/08/17/CONTAINS.htmlhttp://www.aygfsteel.com/machilansing/comments/64048.htmlhttp://www.aygfsteel.com/machilansing/archive/2006/08/17/CONTAINS.html#Feedback0http://www.aygfsteel.com/machilansing/comments/commentRss/64048.htmlhttp://www.aygfsteel.com/machilansing/services/trackbacks/64048.html全文索引—CONTAINS语法

全文索引—CONTAINS语法
全文索引——CONTAINS 语法
我们通常?WHERE 子句中?CONTAINS Q就象这P(x)SELECT * FROM table_name WHERE CONTAINS(fullText_column,'search contents')?

我们通过例子来学?fn),假设有?studentsQ其中的 address 是全文本索的列?br />1. 查询住址在北京的学生
SELECT student_id,student_name
FROM students
WHERE CONTAINS( address, 'beijing' )
remark: beijing是一个单词,要用单引hh?br />
2. 查询住址在河北省的学?br />SELECT student_id,student_name
FROM students
WHERE CONTAINS( address, '"HEIBEI province"' )
remark: HEBEI province是一个词l,在单引号里还要用双引hh?br />
3. 查询住址在河北省或北京的学生
SELECT student_id,student_name
FROM students
WHERE CONTAINS( address, '"HEIBEI province" OR beijing' )
remark: 可以指定逻辑操作W?包括 AND QAND NOTQOR )?br />
4. 查询?'南京? 字样的地址
SELECT student_id,student_name
FROM students
WHERE CONTAINS( address, 'nanjing NEAR road' )
remark: 上面的查询将q回包含 'nanjing road'Q?nanjing east road'Q?nanjing west road' {字L(fng)地址?br />          A NEAR BQ就表示条gQ?A 靠近 B?br />
5. 查询?'? 开头的地址
SELECT student_id,student_name
FROM students
WHERE CONTAINS( address, '"hu*"' )
remark: 上面的查询将q回包含 'hubei'Q?hunan' {字L(fng)地址?br />          C?*Q不?%?br />
6. cM加权的查?br />SELECT student_id,student_name
FROM students
WHERE CONTAINS( address, 'ISABOUT (city weight (.8), county wright (.4))' )
remark: ISABOUT 是这U查询的关键字,weight 指定了一个介?0~1之间的数Q类似系?我的理解)。表CZ同条件有不同的侧重?br />
7. 单词的多态查?br />SELECT student_id,student_name
FROM students
WHERE CONTAINS( address, 'FORMSOF (INFLECTIONAL,street)' )
remark: 查询返回包?'street'Q?streets'{字L(fng)地址?br />         对于动词返回它的不同的时态,如:(x)dryQ将q回 dryQdriedQdrying {等?img src ="http://www.aygfsteel.com/machilansing/aggbug/64048.html" width = "1" height = "1" />

Lansing 2006-08-17 09:31 发表评论
]]>
Oracle 10g TO_DATE() ora-01830 领?zhn)共?/title><link>http://www.aygfsteel.com/machilansing/archive/2006/08/10/62857.html</link><dc:creator>Lansing</dc:creator><author>Lansing</author><pubDate>Thu, 10 Aug 2006 13:03:00 GMT</pubDate><guid>http://www.aygfsteel.com/machilansing/archive/2006/08/10/62857.html</guid><wfw:comment>http://www.aygfsteel.com/machilansing/comments/62857.html</wfw:comment><comments>http://www.aygfsteel.com/machilansing/archive/2006/08/10/62857.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/machilansing/comments/commentRss/62857.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/machilansing/services/trackbacks/62857.html</trackback:ping><description><![CDATA[ <font style="BACKGROUND-COLOR: #d3d3d3" color="#0000ff">今天?DRM中报错ora-01830 </font> <p> <font style="BACKGROUND-COLOR: #d3d3d3" color="#0000ff">把sql语句输出作了以下的实验,发现是时间多了一?0</font> </p> <p> <font style="BACKGROUND-COLOR: #d3d3d3" color="#0000ff">后来的办法是先把q个旉转成to_charQ再转成to_date</font> </p> <p> <font style="BACKGROUND-COLOR: #d3d3d3" color="#0000ff">SQL> select to_date('2005-10-01 12:01:01.0','yyyy-mm-dd hh24:mi:ss') from dual;</font> </p> <p> <font style="BACKGROUND-COLOR: #d3d3d3" color="#0000ff">select to_date('2005-10-01 12:01:01.0','yyyy-mm-dd hh24:mi:ss') from dual</font> </p> <p> <font style="BACKGROUND-COLOR: #d3d3d3" color="#0000ff">ORA-01830: 日期格式囄在{换整个输入字W串之前l束</font> </p> <p> <font style="BACKGROUND-COLOR: #d3d3d3" color="#0000ff">SQL> select to_date('2005-10-01 12:01:01.0','yyyy-mm-dd hh24:mi:sssss') from dual;</font> </p> <p> <font style="BACKGROUND-COLOR: #d3d3d3" color="#0000ff">select to_date('2005-10-01 12:01:01.0','yyyy-mm-dd hh24:mi:sssss') from dual</font> </p> <p> <font style="BACKGROUND-COLOR: #d3d3d3" color="#0000ff">ORA-01836: 时与日中的U发生冲H?/font> </p> <p> <font style="BACKGROUND-COLOR: #d3d3d3" color="#0000ff">SQL> select to_date('2005-10-01 12:01:01.0','yyyy-mm-dd hh24:mi:ss.sssss') from dual;</font> </p> <p> <font style="BACKGROUND-COLOR: #d3d3d3" color="#0000ff">select to_date('2005-10-01 12:01:01.0','yyyy-mm-dd hh24:mi:ss.sssss') from dual</font> </p> <p> <font style="BACKGROUND-COLOR: #d3d3d3" color="#0000ff">ORA-01836: 时与日中的U发生冲H?/font> </p> <p> <font style="BACKGROUND-COLOR: #d3d3d3" color="#0000ff">SQL> select to_date('2005-10-01 12:01:01.0','yyyy-mm-dd hh24:mi:ff') from dual;</font> </p> <p> <font style="BACKGROUND-COLOR: #d3d3d3" color="#0000ff">select to_date('2005-10-01 12:01:01.0','yyyy-mm-dd hh24:mi:ff') from dual</font> </p> <p> <font style="BACKGROUND-COLOR: #d3d3d3" color="#0000ff">ORA-01821: 日期格式无法识别</font> </p> <p> <font style="BACKGROUND-COLOR: #d3d3d3" color="#0000ff">------------------------------------------------------------------</font> </p> <p> <font style="BACKGROUND-COLOR: #d3d3d3" color="#0000ff">必须保证传入的字W串和要转换的格式精匹?/font> </p> <p> <font style="BACKGROUND-COLOR: #d3d3d3" face="Courier" color="#0000ff">SQL> SELECT TO_DATE('11-10-1996-13:51:21','DD/MM/YYYY-HH24') A FROM dual; <br /><br />ERROR: <br />ORA-01830: date format picture ends before converting entire input string.</font> </p> <p> <font face="Courier"> <font style="BACKGROUND-COLOR: #d3d3d3" color="#0000ff">SQL> SELECT TO_DATE('11-10-1996-13:51:21','DD/MM/YYYY-HH24:MI:SS') B FROM dual; <br />Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-<br /></font>以上是{载的<br />后来我是q么做的哈:(x)<br /><br />SELECT中将其他表的日期TO_CHAR下,然后再将值在INSERT时TO_DATE!<br />具体的做法如下:(x)<br /><br />SELECT TO_CHAR(parameter,'YYYY-MM-DD HH24:MI:SS') AS TIME<br />FROM TABLE_NAME_1;<br /><br />...<br />...<br /><br />INSERT INTO TABLE_NAME_2<br />(COLUME_NAME_1)<br />VALUE (TO_DATE('"+TIME+"','YYYY-MM-DD HH24:MI:SS'));<br /><br />然后O(jin)K了,呵呵Q看来要学的q真多!</font> </p> <img src ="http://www.aygfsteel.com/machilansing/aggbug/62857.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/machilansing/" target="_blank">Lansing</a> 2006-08-10 21:03 <a href="http://www.aygfsteel.com/machilansing/archive/2006/08/10/62857.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank">Զ</a>| <a href="http://" target="_blank">з</a>| <a href="http://" target="_blank">ľ</a>| <a href="http://" target="_blank">̺</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">˼</a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank">ߺ</a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɼ</a>| <a href="http://" target="_blank">ᶫ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ʯ</a>| <a href="http://" target="_blank">˾</a>| <a href="http://" target="_blank">ʡ</a>| <a href="http://" target="_blank">ξ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ϲ</a>| <a href="http://" target="_blank">Ϫ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ʯ</a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɶ</a>| <a href="http://" target="_blank">ˮ</a>| <a href="http://" target="_blank">ʯ</a>| <a href="http://" target="_blank">̨</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">˾</a>| <a href="http://" target="_blank">˫</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ǫ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>