`
落地窗
  • 浏览: 439402 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

oracle全文检索(oracle text)记录

阅读更多

1.全文检索和普通检索的区别

不使用Oracle text功能,当然也有很多方法可以在Oracle数据库中搜索文本,比如INSTR函数和LIKE操作:

SELECT *FROM mytext WHERE INSTR (thetext, 'Oracle') > 0;SELECT * FROM mytext WHERE thetext LIKE '%Oracle%';
有很多时候,使用instr和like是很理想的, 特别是搜索仅跨越很小的表的时候。然而通过这些文本定位的方法将导致全表扫描,对资源来说消耗比较昂贵,而且实现的搜索功能也非常有限,因此对海量的文本数据进行搜索时,建议使用oralce提供的全文检索功能。

附:这里顺带记录一下INSTR和LIKE:

Oracle中,可以使用 Instr 函数对某个字符串进行判断,判断其是否含有指定的字符。其语法为:Instr(string, substring, position, occurrence)。

string:代表源字符串(写入字段则表示此字段的内容)。

substring:代表想从源字符串中查找的子串。

position:代表查找的开始位置,该参数可选的,默认为1。

occurrence:代表想从源字符中查找出第几次出现的substring,该参数也是可选的,默认为1。

position 的值为负数,那么代表从右往左进行查找。

instr和like的性能比较

其实从效率角度来看,谁能用到索引,谁的查询速度就会快。

like有时可以用到索引,例如:name like ‘李%’,而当下面的情况时索引会失效:name like ‘%李’。所以一般我们查找中文类似于‘%字符%’时,索引都会失效。与其他数据库不同的是,oracle支持函数索引。例如在name字段上建个instr索引,查询速度就比较快了,这也是为什么instr会比like效率高的原因。

注:instr(title,’手册’)>0 相当于like‘%手册%’

instr(title,’手册’)=0 相当于not like‘%手册%’

2.设置全文检索
步骤步骤一:检查和设置数据库角色

首先检查数据库中是否有CTXSYS用户和CTXAPP脚色。如果没有这个用户和角色,意味着你的数据库创建时未安装intermedia功能(10G默认安装都有此用户和角色)。你必须修改数据库以安装这项功能。默认安装情况下,ctxsys用户是被锁定的,因此要先启用ctxsys的用户。
步骤二:赋权
步骤三:创建分析器(lexer)
步骤四:创建索引
步骤五:测试


--创建oracle全文检索
--1.解锁ctxsys用户,在system用户下操作
alter user ctxsys account unlock;
--2.将ctx_ddl包的操作权限赋给用户,在system用户下操作
grant execute on ctx_ddl to tfyj;
--3.创建分析器,在tfyj用户下
exec ctx_ddl.create_preference ('tfyj_lexer', 'chinese_vgram_lexer');
--4.创建过滤词组(没用到)
exec ctx_ddl.create_stoplist('my_stoplist');  
--5.自定义过滤词组(没用到)
ctx_ddl.add_stopword('my_stoplist','有限公司');   
ctx_ddl.add_stopword('my_stoplist','股份有限公司'); 
--6.创建索引,在台风预警用户下创建
create index tfyj_facility_INDEX on f_tower(TOWER_NAME) indextype is CTXSYS.CONTEXT parameters('lexer tfyj_lexer');  

--7.查询测试
select score(1),t.* from f_tower t where contains(tower_name,'110kv  濠保线 N8 ',1)>0 order by score(1) desc;  


详情http://yupengcc.iteye.com/blog/1267205
分享到:
评论

相关推荐

    Oracle全文检索技术详解

    从Oracle 7版本开始,Oracle就开始提供全文检索功能,起初名为Oracle ConText Cartridge,随后在Oracle 8/8i中称为Oracle interMedia,直至Oracle 9i正式命名为Oracle Text,并在后续版本中不断得到增强和优化,尤其...

    oracle全文检索

    Oracle全文检索技术是数据库管理系统Oracle中用于高效查找和分析文本数据的一种功能。它在不同的Oracle版本中有着不同的名称,如Oracle8.0.x中的ConText,Oracle8i中的interMedia Text,以及从Oracle9i开始的Oracle ...

    oracle全文检索.pdf

    为了实现高效的全文检索,Oracle Text 需要为待检索的数据项建立索引。索引构建过程通常包括以下几个阶段: 1. **数据检索 (Datastore)**:从数据源(如 Web 页面、数据库 LOB 对象或本地文件系统)获取数据,并将...

    20081224-安装配置oracle全文检索

    Oracle全文检索是Oracle数据库系统中的一种高级特性,用于在数据库中的文本数据中执行高效、复杂的全文搜索。在本文中,我们将深入探讨如何安装和配置Oracle Text,以及它所依赖的关键角色和用户。 首先,要使用...

    ORACLE全文检索

    Oracle Text 是 Oracle 提供的一种全文检索技术,支持对本地文件的检索,也支持对网页的文本检索。Oracle Text 的实现是依靠参数 datastore 和 filter 的组合。在数据库的文本列中只保存指向硬盘文件的指针。建立...

    Oracle的全文检索技术

    实现Oracle Text全文检索的基本步骤包括: - 创建包含文本字段的表,并装载文本数据。 - 配置索引,这可能涉及到选择合适的过滤器和词法分析器。 - 建立索引,将文本数据转化为可搜索的结构。 - 发出查询,使用SQL...

    如何更好的利用Oracle全文检索.docx

    "Oracle全文检索技术" Oracle全文检索是指在Oracle数据库中对大量文本数据进行搜索和检索的技术。通过使用Oracle提供的全文检索功能,可以快速、准确地检索大量文本数据。 一、基本概念 Oracle全文检索的基础是...

    Oracle 全文检索应用

    Oracle Text是Oracle 9i及更高版本中的组件,它提供了高级的全文检索和文本管理能力。Oracle Text的前身在Oracle 8/8i中称为Oracle interMedia Text,而在Oracle 8之前则是Oracle ConText Cartridge。 Oracle Text...

    ORACLE 全文检索实例

    在Oracle数据库中,全文检索主要依赖于Oracle Text组件,它提供了高级的文本分析和检索能力。以下是对Oracle全文检索实例的详细解释: 1. **用户与角色配置**: - `tls4cs` 是一个应用程序用户,用于执行全文检索...

    ORACLE 全文检索实例.rar

    首先,Oracle全文检索的基础是Oracle Text,这是Oracle数据库的一个组件,它支持对非结构化数据进行索引和搜索。Oracle Text通过创建索引来存储文本信息,这些索引可以快速定位和检索相关文档。在构建全文检索的过程...

    OracleText全文检索.zip

    在本压缩包中,我们有三个文件,分别是“OracleText全文检索.doc”、“KWIC.zip”和“catsearch.zip”,它们分别涵盖了OracleText的基础知识、关键词展示(Keyword in Context, KWIC)和分类搜索(Category Search)...

    oracle全文检索使用说明

    Oracle全文检索是一种强大的文本搜索工具,自Oracle 7.3版本开始引入,旨在帮助用户高效地在大量文本数据中进行查找操作。在Oracle 9i中,这一功能被称为Oracle Text,它被集成到标准版和企业版数据库中,无需额外...

    Oracle全文检索技术在海量数据挖掘中的应用.pdf

    Oracle数据库管理系统提供强大的全文检索能力,主要通过Oracle Text组件实现。Oracle Text支持的文件类型广泛,包含纯文本文件、Html文件、Xml文件以及特定格式的文档,如doc、pdf、ppt等。Oracle的全文检索技术在...

    Oracle全文检索技术的应用.pdf

    Oracle Text是Oracle数据库提供的一种内置的全文检索组件,它允许开发者使用标准SQL语句来构建和扩展文本搜索功能,简化了在数据库中进行复杂文本检索的流程。 Oracle Text的关键技术包括对文本数据的索引和查询。...

    ORACLE全文检索技术的应用及其优化的分析.pdf

    在Oracle数据库中,全文检索技术主要依赖于Oracle Text这一功能组件。Oracle Text提供了多种文本搜索功能,能够支持复杂的查询操作,包括模糊搜索、多词搜索、短语搜索等。此外,它还允许用户创建和使用专门的词典来...

    oracle text全文检索的开发和相关文档

    Oracle Text 是 Oracle 数据库提供的一种强大的全文检索解决方案,它自 Oracle 7.3 版本开始引入,并在后续版本中不断演进和完善。Oracle Text 旨在帮助用户高效地搜索和管理文本数据,无论这些数据存储在本地文件、...

Global site tag (gtag.js) - Google Analytics