首页 > 数据库 >【引用】Oracle全文检索方面的研究(全6)

【引用】Oracle全文检索方面的研究(全6)

时间:2023-09-21 11:34:41浏览次数:60  
标签:mywordlist -- ctx 全文检索 引用 wildcard ddl Oracle word


3.6 Wordlist 属性

Oracle 全文检索的wordlist 属性用来设置模糊查询和同词根查询,wordlist 属性还支持

子查询和前缀查询,oracle 的wordlist 属性只有basic_wordlist 一种(原文:Use the wordlist

preference to enable the query options such as stemming, fuzzy matching for your language. You

can also use the wordlist preference to enable substring and prefix indexing, which improves

performance for wildcard queries with CONTAINS and CATSEARCH.)

3.6.1 例子:

Create table my_word (id number, docs varchar2(1000));
Insert into my_word values (1, 'Specify the stemmer used for word stemming in Text queries');
Insert into my_word values (2, 'Specify which fuzzy matching routines are used for the
column');
Insert into my_word values (3, 'Fuzzy matching is currently supported for English');
Insert into my_word values (4, 'Specify a default lower limit of fuzzy score. Specify a
number between 0 and 80');
Insert into my_word values (5, 'Specify TRUE for Oracle Text to create a substring index
matched.');
commit;
/
--建立wordlist
Begin
ctx_ddl.drop_preference('mywordlist');
ctx_ddl.create_preference('mywordlist', 'basic_wordlist');
ctx_ddl.set_attribute('mywordlist','fuzzy_match','english'); --模糊匹配,英语
ctx_ddl.set_attribute('mywordlist','fuzzy_score','0'); --匹配得分
ctx_ddl.set_attribute('mywordlist','fuzzy_numresults','5000');
ctx_ddl.set_attribute('mywordlist','substring_index','true'); --左查询,适用%to,%to%
ctx_ddl.set_attribute('mywordlist','stemmer','english'); --词根
ctx_ddl.set_attribute('mywordlist', 'prefix_index', 'true'); --右查询,适用t0%
End;
Create index indx_m_word on my_word(docs) indextype is ctxsys.context
parameters('wordlist mywordlist');
--例子
Select docs from my_word where contains(docs,'$match')>0 ; --词根查询
Select docs from my_word where contains(docs,'MA%')>0; --匹配查询
 
3.6.2 document 上的例子
create table quick( quick_id number primary key, text varchar(80) );
--- insert a row with 10 expansions for 'tire%'
insert into quick ( quick_id, text )
values ( 1, 'tire tirea tireb tirec tired tiree tiref tireg tireh tirei tirej');
commit;
/
begin
Ctx_Ddl.Create_Preference('wildcard_pref', 'BASIC_WORDLIST');
ctx_ddl.set_attribute('wildcard_pref', 'wildcard_maxterms', 100) ;
end;
/
create index wildcard_idx on quick(text) indextype is ctxsys.context
parameters ('Wordlist wildcard_pref') ;
select quick_id from quick where contains ( text, 'tire%' ) > 0;
drop index wildcard_idx ;
begin
Ctx_Ddl.Drop_Preference('wildcard_pref');
Ctx_Ddl.Create_Preference('wildcard_pref', 'BASIC_WORDLIST');
ctx_ddl.set_attribute('wildcard_pref', 'wildcard_maxterms', 5) ;--限制最大的匹配数,如
果超过这个数量,查询出现报错
end;
/
create index wildcard_idx on quick(text) indextype is ctxsys.context
parameters ('Wordlist wildcard_pref') ;
select quick_id from quick where contains ( text, 'tire%' ) > 0;

3.6.3.参考脚本

--建立wordlist
begin
ctx_ddl.create_preference('mywordlist', 'BASIC_WORDLIST');
ctx_ddl.set_attribute('mywordlist','PREFIX_INDEX','TRUE'); --定义wordlist 的参数
end;
--删除wordlist
begin
ctx_ddl.drop_preference('mywordlist');

标签:mywordlist,--,ctx,全文检索,引用,wildcard,ddl,Oracle,word
From: https://blog.51cto.com/u_16255870/7552209

相关文章

  • 【引用】Oracle全文检索方面的研究(全2)
    3.2Filter属性过滤器负责将各种文件格式的数据转换为纯文本格式,索引管道中的其他组件只能处理纯文本数据,不能识别microsoftword或excel等文件格式,filter有charset_filter、inso_filter、null_filter、user_filter、procedure_filter几种类型。(可将文档格式转化为数据库文......
  • 【引用】Oracle全文检索方面的研究(全9)
    3.10常用的脚本3.10.1.删除preference:beginctx_ddl.drop_preference('my_lexer');end; 3.10.2.索引重建:ALTERINDEXnewsindexREBUILDPARAMETERS('replacelexermy_lexer'); 3.10.3同步索引beginctx_ddl.sync_index('myindex','2M');end;或通过后......
  • oracle查看实例EM端口号、SID设制与一些命令
    一、查看数据库实例的EM端口在ORACLE_HOME\install\portlist.ini文件里面。二、设制数据库实例的SIDSID的长度不能超过8个字符。实例名不能超过30个字符三、常用的一些命令启动/关闭EM:emctlstart/stopdbconsole启动/关闭监听:lsnrctlstart/stop创......
  • oracle 9i 建立oracle 10g dblink
    在oracle9i的机器的tnsnames.ora里配置10g的服务名为:ora10g=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=ip)(PORT=1522)))(CONNECT_DATA=(SERVICE_NAME......
  • Oracle表空间操作详解(备份)
    建立表空间CREATETABLESPACEdata01DATAFILE'/oracle/oradata/db/DATA01.dbf'SIZE500MUNIFORMSIZE128k;#指定区尺寸为128k,如不指定,区尺寸默认为64k删除表空间DROPTABLESPACEdata01INCLUDINGCONTENTSANDDATAFILES;修改表空间大小alterdatabasedatafile'/path/NADD......
  • Oracle正则表达式函数
    1、正则表达式中的元字符元字符意思例子\说明要匹配的字符是一个特殊字符、常量或者后者引用。(后引用重复上一次的匹配)\n匹配换行符\\匹配\\(匹配(\)匹配)^匹配字符串的开头位置如果A是字符串的第一个字符,^A匹配A$匹配字符串的末尾位置如果B是字符......
  • Oracle的差异增量备份和累积增量备份
    在rman增量备份中,有差异增量和累积增量的概念   1、概念    差异增量:是备份上级及同级备份以来所有变化的数据块,差异增量是默认增量备份方式    累积增量:是备份上级备份以来所有变化的块   因为累积增量是备份上级备份以来所有变化的数据块,所以累积增量需要更......
  • Java 的值传递与引用传递
     实参与形参我们都知道,在Java中定义方法的时候是可以定义参数的。比如Java中的main方法,publicstaticvoidmain(String[]args),这里面的args就是参数。参数在程序语言中分为形式参数和实际参数。形式参数:是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时......
  • 知识库系统推荐,强大的全文检索与文档分类管理功能
    在我们日常企业运营管理过程中,会积累大量的文档资料,对于我们全体成员来说,这些知识文档都是巨大的财富,所以整合并搭建一套知识库系统是非常有必要的。 知识库系统推荐我们日常工作中产生大量的文档,随着存储技术的进步,使得存储文件的成本越来越低。最终,几乎所有的文档,都被积累下来。......
  • C++ 左/右值及其引用 论述
    说明:本文探讨的是C++11以来的值类别关于左值和右值,在不对其进行详细的划分时,简单的分类方法包括左值持久,右值短暂能取得地址得通常是左值,反之通常是右值(这一方法启示我们一个表达式的类型与其是左值还是右值无关,即相同类型的表达式既可以是左值也可以是右值)右......