`

Oracle全文检索示例(转)

阅读更多
第一种方法:
一、创建示例表
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全文检索

    这个文件很可能包含了完整的全文检索配置和示例查询,可能涵盖了如何创建、更新和查询全文索引的全过程。 在实际使用中,Oracle全文检索支持多种查询语法,包括简单的关键词查询、布尔运算符(AND、OR、NOT)、短语...

    oracle全文检索使用说明

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

    oracle 全文检索文档

    ### Oracle全文检索文档知识点 #### 一、Oracle Text 概述与概念 Oracle Text 是 Oracle 数据库的一个组件,用于提供全文检索能力。自 Oracle 9i 版本开始,Oracle Text 成为了数据库的一个内置特性,它允许用户...

    Oracle全文检索

    Oracle全文检索是数据库管理系统Oracle中的一个重要特性,...通过阅读《Oracle全文检索.doc》文档,你将进一步了解Oracle Text的详细配置、使用示例和最佳实践,从而更好地利用这一功能强大的工具来提升数据检索效率。

    oracle9i中全文检索的创建与使用

    ### Oracle9i中全文检索的创建与使用 #### 一、引言 Oracle数据库自7.3版本开始引入了全文检索的功能,使用户能够利用Oracle服务器的上下文(ConText)选项来完成基于文本的数据查询。随着Oracle版本的升级,这一...

    Oracle如何对CLOB行字段来执行全文检索

    Oracle CLOB 行字段全文检索实现方法 Oracle 数据库中,CLOB 行字段是一种常用的数据类型,用于存储大文本数据。然而,在 Oracle8i 版本之前,对大字段 CLOB 仍然不支持在 where 子句直接的 Like 操作。这使得...

    Oracle 9i的全文检索技术

    Oracle 9i的全文检索技术是Oracle数据库在9i版本中引入的一项重要功能,通过Oracle Text组件,使得数据库系统能够高效地处理和搜索文本数据。Oracle Text不仅支持基础的全文搜索,还能处理复杂的文档格式和多语言...

    ORACLE中CLOB字段转String类型

    - 需要全文检索的场景。 - 存储XML文档或其他结构化文本数据。 3. **操作限制**: - 直接对CLOB进行某些操作可能会导致性能问题。 - 不适合频繁更新的场景,因为每次更新都会产生新的版本。 #### 二、CLOB转...

    Oracle sql 源码 简单 全面 示例.rar

    Oracle SQL是一种强大的数据库查询语言,用于在Oracle数据库系统中检索、操作和管理数据。这个"Oracle SQL源码简单全面示例.rar"压缩包文件显然包含了各种Oracle SQL的使用示例,旨在帮助用户全面理解并掌握SQL在...

    使用ES全文检索.docx

    ### 使用ES全文检索知识点概述 #### 一、ELK栈简介与安装 ##### 1.1 ELK栈介绍 ELK栈(Elasticsearch, Logstash, Kibana)是一套开源工具组合,用于实现数据收集、存储、搜索、分析以及可视化等功能。这套工具在大...

    oracle基础代码示例.rar

    "oracle基础代码示例.rar"这个压缩包文件很可能包含了一系列用于演示Oracle数据库基本操作的代码片段,例如SQL查询、数据插入、更新和删除等。让我们深入探讨一下Oracle数据库的基础知识。 一、Oracle数据库简介 ...

    Java_Oracle数据库JSON示例.zip

    本示例"Java_Oracle数据库JSON示例.zip"将介绍如何在Java中操作Oracle数据库中的JSON数据。 首先,我们需要了解Oracle数据库中的JSON支持。Oracle 12c引入了JSON数据类型`JSON_OBJECT`和`JSON_ARRAY`,以及一系列的...

    itpub全文检索.pdf

    ### Oracle9i全文检索知识点详解 #### 一、Oracle9i全文检索简介 **Oracle Text**,作为Oracle 9i数据库的重要组成部分,提供了强大的全文检索功能。从Oracle 7.3版本开始支持全文检索功能,随后在不同版本中分别...

    《Oracle_全文索引_详细介绍》_40页.pdf

    ### Oracle全文索引详解 ...总之,Oracle Text为用户提供了强大而灵活的全文检索能力,极大地提高了基于文本的数据查询效率。通过对全文索引的合理设计和有效使用,可以显著提升应用程序的性能和用户体验。

    oracle常用查询语句示例

    在Oracle中,基础的SELECT语句用于从单个表中检索数据。例如: ```sql SELECT column1, column2 FROM table_name; ``` 这里的`column1`和`column2`是你想查询的列名,`table_name`是你要查询的表的名称。你可以使用...

    oracle SQL优化实例

    在错误示例中,使用了并连接符号,这导致Oracle无法使用`empno`字段上的索引。正确的做法是分开使用等号(`=`)进行匹配,这样可以充分利用索引。 #### 五、索引范围扫描 索引范围扫描是指通过索引查找一定范围内的...

    汉字转全拼或首字母Oracle存储过程

    在Oracle数据库环境中,有时我们需要对汉字进行处理,例如将其转换为全拼或首字母,以进行数据检索、索引优化等操作。在这种情况下,可以利用PL/SQL编写存储过程来实现这一功能。"汉字转全拼或首字母Oracle存储过程...

    oracle 类型转换函数

    在Oracle数据库中,类型转换函数是...以上函数在Oracle数据库中广泛使用,它们提供了强大的数据处理能力,使得开发者能够更灵活地进行数据检索和分析。熟练掌握这些函数的用法,将有助于提高数据库应用的效率和性能。

    基于Lucene的甲骨文全文检索系统构建.pdf

    【标题】:基于Lucene的甲骨文全文检索系统构建 【摘要】:随着甲骨文数字化研究的深入,处理的甲骨文信息量日益增长,检索甲骨文信息变得困难。本文研究如何利用Java的全文检索工具包Lucene,构建甲骨文全文检索...

    Oracle函数:根据自定义分隔符拆分字段SPLIT-STR()然后查询检索数据库表数据

    1、易于使用:资源附带的示例代码Demo和示例DML数据,有详细的函数说明和注释,以及请求demo示例,方便用户快速上手。 2、自定义分隔符:支持用户自定义分隔符,如英文逗号、分号等,满足各种复杂的字段拆分需求。 3...

Global site tag (gtag.js) - Google Analytics