第一种方法:
一、创建示例表
CREATE TABLE T_FULLTEXT_DEMO(
ID NUMBER NOT NULL,
TITLE VARCHAR2(100) NULL,
REMARK VARCHAR2(200) NULL,
FILE_NAME VARCHAR2(200) NULL,
CONSTRAINT T_FULLTEXT_DEMO_PK PRIMARY KEY ( ID ));
二、对TITLE和REMARK建立索引
BEGIN
CTXSYS.CTX_DDL.CREATE_PREFERENCE('MYMDS','MULTI_COLUMN_DATASTORE');
CTXSYS.CTX_DDL.SET_ATTRIBUTE('MYMDS', 'COLUMNS', 'TITLE, REMARK');
END;
CREATE INDEX T_FULLTEXT_DEMO_IDX ON T_FULLTEXT_DEMO(TITLE)
INDEXTYPE IS CTXSYS.CONTEXT PARAMETERS('DATASTORE MYMDS');
三、建立存储选项参数、语法分析器
BEGIN
--CTX_DDL.DROP_PREFERENCE('MY_LEXER');
--CTX_DDL.DROP_PREFERENCE('MY_DATASTORE_PREFS');
CTX_DDL.CREATE_PREFERENCE ('MY_LEXER', 'CHINESE_VGRAM_LEXER');
CTX_DDL.CREATE_PREFERENCE ('MY_DATASTORE_PREFS', 'FILE_DATASTORE');
CTX_DDL.SET_ATTRIBUTE ('MY_DATASTORE_PREFS', 'PATH', 'E:\Projects\My_Documents; E:\Projects\My_Documents\UML_DOC');
END;
四、对文档建立全文检索索引
CREATE INDEX T_FULLTEXT_DEMO_FILE_IDX ON T_FULLTEXT_DEMO(FILE_NAME)
INDEXTYPE IS CTXSYS.CONTEXT PARAMETERS('DATASTORE MY_DATASTORE_PREFS LEXER MY_LEXER');
五、插入测试数据
INSERT INTO T_FULLTEXT_DEMO(ID,TITLE,REMARK,FILE_NAME) VALUES(1,'德鲁克的《管理:任务、责任、实践》','管理类书籍','德鲁克的《管理:任务、责任、实践》.doc');
INSERT INTO T_FULLTEXT_DEMO(ID,TITLE,REMARK,FILE_NAME) VALUES(2,'PB控件的属性事件和函数','PB技术书籍','PB控件的属性事件和函数.pdf');INSERT INTO T_FULLTEXT_DEMO(ID,TITLE,REMARK,FILE_NAME) VALUES(3,'微软产品报价','微软软件产品报价','微软产品报价.xls');
INSERT INTO T_FULLTEXT_DEMO(ID,TITLE,REMARK,FILE_NAME) VALUES(4,'JavaScript 5.5','JavaScript语言帮助文档','JavaScript 5.5.CHM');
INSERT INTO T_FULLTEXT_DEMO(ID,TITLE,REMARK,FILE_NAME) VALUES(5,'ASCII码','ASCII码的各种进制表示方式和代表的意思','ASCII码.htm');
INSERT INTO T_FULLTEXT_DEMO(ID,TITLE,REMARK,FILE_NAME) VALUES(6,'UML数据库建模','UML数据库建模的相关知识','UML数据库建模.ppt');
六、同步索引和优化索引若此时检索,应没有数据。
select * from T_FULLTEXT_DEMOwhere contains(TITLE,'管理')>0;
需要将索引同步
BEGIN CTXSYS.CTX_DDL.SYNC_INDEX('T_FULLTEXT_DEMO_FILE_IDX'); CTXSYS.CTX_DDL.SYNC_INDEX('T_FULLTEXT_DEMO_IDX');END;
七、测试全文索引
select * from T_FULLTEXT_DEMOwhere contains(TITLE,'管理')>0;
select * from T_FULLTEXT_DEMOwhere contains(FILE_NAME,'德鲁克')>0;
八、优化索引
BEGIN
CTXSYS.CTX_DDL.OPTIMIZE_INDEX('T_FULLTEXT_DEMO_FILE_IDX','FULL');
CTXSYS.CTX_DDL.OPTIMIZE_INDEX('T_FULLTEXT_DEMO_IDX','FULL');
END;
第二种方法:
一、创建示例表
CREATE TABLE T_FULLTEXT_DEMO( ID NUMBER NOT NULL, TITLE VARCHAR2(100) NULL, REMARK VARCHAR2(200) NULL, FILE_NAME BFILE NULL, CONSTRAINT T_FULLTEXT_DEMO_PK PRIMARY KEY ( ID ));
二、创建虚拟目录并授权(使用SYSTEM帐号)
CREATE DIRECTORY LOCAL_DIR AS 'E:\Projects\My_Documents';GRANT READ ON DIRECTORY LOCAL_DIR TO JK_DANGAN;
三、插入示例数据
INSERT INTO T_FULLTEXT_DEMOVALUES (1, '微软产品报价', '微软产品报价',BFILENAME('LOCAL_DIR','微软产品报价.xls'));
INSERT INTO T_FULLTEXT_DEMOVALUES (2, '电子商务的瓶颈之我见', '电子商务的瓶颈之我见',BFILENAME(''LOCAL_DIR','电子商务的瓶颈之我见.doc'));
四、创建索引
CREATE INDEX T_FULLTEXT_DEMO_FILE_IDX ON T_FULLTEXT_DEMO(FILE_NAME) INDEXTYPE IS CTXSYS.CONTEXT;
五、测试
select * from T_FULLTEXT_DEMOwhere contains(file_name,'数据库')>0
分享到:
相关推荐
这个文件很可能包含了完整的全文检索配置和示例查询,可能涵盖了如何创建、更新和查询全文索引的全过程。 在实际使用中,Oracle全文检索支持多种查询语法,包括简单的关键词查询、布尔运算符(AND、OR、NOT)、短语...
Oracle全文检索是一种强大的文本搜索工具,自Oracle 7.3版本开始引入,旨在帮助用户高效地在大量文本数据中进行查找操作。在Oracle 9i中,这一功能被称为Oracle Text,它被集成到标准版和企业版数据库中,无需额外...
### Oracle全文检索文档知识点 #### 一、Oracle Text 概述与概念 Oracle Text 是 Oracle 数据库的一个组件,用于提供全文检索能力。自 Oracle 9i 版本开始,Oracle Text 成为了数据库的一个内置特性,它允许用户...
Oracle全文检索是数据库管理系统Oracle中的一个重要特性,...通过阅读《Oracle全文检索.doc》文档,你将进一步了解Oracle Text的详细配置、使用示例和最佳实践,从而更好地利用这一功能强大的工具来提升数据检索效率。
### Oracle9i中全文检索的创建与使用 #### 一、引言 Oracle数据库自7.3版本开始引入了全文检索的功能,使用户能够利用Oracle服务器的上下文(ConText)选项来完成基于文本的数据查询。随着Oracle版本的升级,这一...
Oracle CLOB 行字段全文检索实现方法 Oracle 数据库中,CLOB 行字段是一种常用的数据类型,用于存储大文本数据。然而,在 Oracle8i 版本之前,对大字段 CLOB 仍然不支持在 where 子句直接的 Like 操作。这使得...
Oracle 9i的全文检索技术是Oracle数据库在9i版本中引入的一项重要功能,通过Oracle Text组件,使得数据库系统能够高效地处理和搜索文本数据。Oracle Text不仅支持基础的全文搜索,还能处理复杂的文档格式和多语言...
- 需要全文检索的场景。 - 存储XML文档或其他结构化文本数据。 3. **操作限制**: - 直接对CLOB进行某些操作可能会导致性能问题。 - 不适合频繁更新的场景,因为每次更新都会产生新的版本。 #### 二、CLOB转...
Oracle SQL是一种强大的数据库查询语言,用于在Oracle数据库系统中检索、操作和管理数据。这个"Oracle SQL源码简单全面示例.rar"压缩包文件显然包含了各种Oracle SQL的使用示例,旨在帮助用户全面理解并掌握SQL在...
### 使用ES全文检索知识点概述 #### 一、ELK栈简介与安装 ##### 1.1 ELK栈介绍 ELK栈(Elasticsearch, Logstash, Kibana)是一套开源工具组合,用于实现数据收集、存储、搜索、分析以及可视化等功能。这套工具在大...
"oracle基础代码示例.rar"这个压缩包文件很可能包含了一系列用于演示Oracle数据库基本操作的代码片段,例如SQL查询、数据插入、更新和删除等。让我们深入探讨一下Oracle数据库的基础知识。 一、Oracle数据库简介 ...
本示例"Java_Oracle数据库JSON示例.zip"将介绍如何在Java中操作Oracle数据库中的JSON数据。 首先,我们需要了解Oracle数据库中的JSON支持。Oracle 12c引入了JSON数据类型`JSON_OBJECT`和`JSON_ARRAY`,以及一系列的...
### Oracle9i全文检索知识点详解 #### 一、Oracle9i全文检索简介 **Oracle Text**,作为Oracle 9i数据库的重要组成部分,提供了强大的全文检索功能。从Oracle 7.3版本开始支持全文检索功能,随后在不同版本中分别...
### Oracle全文索引详解 ...总之,Oracle Text为用户提供了强大而灵活的全文检索能力,极大地提高了基于文本的数据查询效率。通过对全文索引的合理设计和有效使用,可以显著提升应用程序的性能和用户体验。
在Oracle中,基础的SELECT语句用于从单个表中检索数据。例如: ```sql SELECT column1, column2 FROM table_name; ``` 这里的`column1`和`column2`是你想查询的列名,`table_name`是你要查询的表的名称。你可以使用...
在错误示例中,使用了并连接符号,这导致Oracle无法使用`empno`字段上的索引。正确的做法是分开使用等号(`=`)进行匹配,这样可以充分利用索引。 #### 五、索引范围扫描 索引范围扫描是指通过索引查找一定范围内的...
在Oracle数据库环境中,有时我们需要对汉字进行处理,例如将其转换为全拼或首字母,以进行数据检索、索引优化等操作。在这种情况下,可以利用PL/SQL编写存储过程来实现这一功能。"汉字转全拼或首字母Oracle存储过程...
在Oracle数据库中,类型转换函数是...以上函数在Oracle数据库中广泛使用,它们提供了强大的数据处理能力,使得开发者能够更灵活地进行数据检索和分析。熟练掌握这些函数的用法,将有助于提高数据库应用的效率和性能。
【标题】:基于Lucene的甲骨文全文检索系统构建 【摘要】:随着甲骨文数字化研究的深入,处理的甲骨文信息量日益增长,检索甲骨文信息变得困难。本文研究如何利用Java的全文检索工具包Lucene,构建甲骨文全文检索...
1、易于使用:资源附带的示例代码Demo和示例DML数据,有详细的函数说明和注释,以及请求demo示例,方便用户快速上手。 2、自定义分隔符:支持用户自定义分隔符,如英文逗号、分号等,满足各种复杂的字段拆分需求。 3...