oracle全文检索笔记

1、删除词法解析器

exec ctx_ddl.drop_preference(‘my_lexer‘);

2、创建中文词法解析器

exec ctx_ddl.create_preference (‘my_lexer‘, ‘chinese_vgram_lexer‘);

3、创建全文索引,多字段

EXEC ctx_ddl.create_preference(‘ctx_idx_jdw_person_pref‘,‘MULTI_COLUMN_DATASTORE‘);

EXEC ctx_ddl.set_attribute(‘ctx_idx_jdw_person_pref ‘,‘columns‘,‘name,address‘);

CREATE INDEX ctx_idx_jdw_person ON jdw_person(name) INDEXTYPE IS ctxsys.CONTEXT PARAMETERS(‘DATASTORE ctx_idx_jdw_person_pref lexer my_lexer‘);

4、切词

exec CTX_DDL.CREATE_POLICY(‘MY_POLICY‘, LEXER => ‘my_lexer‘);

create or replace function p_split_chinese(p_input in varchar2)
return varchar2 as
v_tab CTX_DOC.TOKEN_TAB;
v_return VARCHAR2(323767);
begin
CTX_DOC.POLICY_TOKENS(‘my_policy‘,p_input,v_tab);
for i in 1..v_tab.count loop
v_return := v_return || ‘,‘ || v_tab(i).token;
end loop;
return LTRIM(v_return,‘,‘);
end;
/

5、同步及优化

exec ctx_ddl.sync_index(‘ctx_idx_jdw_person‘);

exec ctx_ddl.optimize_index(‘ctx_idx_jdw_person‘, ‘full‘);

6、创建定时任务,定期优化和同步域索引

SQL> create or replace procedure hsp_sync_index as
2 begin
3 ctx_ddl.sync_index(‘id_cont_msg‘);
4 end;
5 /

Procedure created.

Elapsed: 00:00:00.08
SQL> VARIABLE jobno number;
SQL> BEGIN
2 DBMS_JOB.SUBMIT(:jobno,‘hsp_sync_index();‘,
3 SYSDATE, ‘SYSDATE + (1/24/4)‘);
4 commit;
5 END;
6 /

PL/SQL procedure successfully completed.

Elapsed: 00:00:00.27
SQL> create or replace procedure hsp_optimize_index as
2 begin
3 ctx_ddl.optimize_index(‘id_cont_msg‘,‘FULL‘);
4 end;
5 /

SQL> VARIABLE jobno number;
SQL> BEGIN
2 DBMS_JOB.SUBMIT(:jobno,‘hsp_optimize_index();‘,
3 SYSDATE, ‘SYSDATE + 1‘);
4 commit;
5 END;
6 /
Procedure created.

Elapsed: 00:00:00.03

PL/SQL procedure successfully completed.

Elapsed: 00:00:00.02
SQL>

时间: 2024-08-19 03:16:15

oracle全文检索笔记的相关文章

Oracle 学习笔记 17 -- 异常处理(PL/SQL)

程序在执行过程中出现异常是正常的,在程序的编写过程中出现异常也是不可避免的.但是要有相应的异常处理的机 制,来保证程序的正常执行.PL/SQL程序执行过程中出现的错误,称为异常.一个优秀的程序都应该能够正确处理 各种出错的情况,并尽可能的从错误中恢复.PL/SQL提供了异常处理机制. 概念: 异常处理(exception)是用来处理正常执行过程中未预料的事件,程序块的异常处理定义的错误和自定义的错误, 由于PL/SQL程序块一旦产生异常而没有指出如何处理时,程序就会异常的终止. 有三种类型的错误

oracle学习笔记之用户管理-3

用户权限机制 1.不同用户表权限的赋予 grant select on scott.emp to software; ---当前登录用户为表所有者,则表名前不用指定所属用户 2.用software登录后 select * from scott.emp; ---software才有权限查询到scott的emp表 方案(schema) 当用户创建好后,如果该用户创建了一个数据对象(如表),此时dbms会创建一个对应的方案与改用户对应,并且该方案的名称和用户名称一致. system与scott都拥有自

【Oracle学习笔记】

内容主要包含: (1)三种循环及其简化 (2)游标的使用 (3)异常处理 (4)存储过程 (5)存储函数 (6)触发器 (7)其他pl/sql操作 ---------------loop循环定义变量-------------------- declare cursor c1 is select * from emp;# rec emp%rowtype;# i numeber:=1; # v_count number;begin# select count(*) into v_count from

oracle学习笔记(二)

设置归档模式(mount状态) ALTER database ARCHIVELOG; //关闭数据库 shutdown immediate //启动数据库到mount状态 startup mount alter database archivelog; //查看归档状态 archive log list; SQL> archive log list; 数据库日志模式 存档模式 自动存档 启用 存档终点 USE_DB_RECOVERY_FILE_DEST 最早的联机日志序列 1 下一个存档日志序列

oracle琐碎笔记

Oracle知识点 ps:由于是自己看的所以笔记比较乱,大家谅解 Commit rollback Sql核心语句之select Selct中要用到以下语句 From语句 Where语句 Group by语句 Group by 来进行分组,分组的参数如果有重复的,只返回一个行值.(比如我按id分组如果记录中有两个id为1的记录,这时候只返回一行) Having语句 将分组汇总后的查询结果限定为只有该子句的条件为真的数据行. 一般情况下having放在groupby后面执行. Order by语句

oracle学习笔记之用户管理-2

案例:创建一个用户software,然后给分配权限,可以让software登录数据库.创建表.操作自己创建的表,回收角色,最后删除用户. 1.创建software用户,密码system create user software identified by system; 2.让software连接数据库,需要给其connect.resource权限 grant connect to software; grant resource to software; 3.使用software用户登录 co

oracle进阶笔记-基础准备-oracel-linux安装

Oracle 11g 在RedHat Linux 5.8_x64平台的安装手册 搭建环境:VM10 + RedHat 5.8_x64 +oracle 11g (grid+db) 步骤简述: 1.在电脑上安装VMware软件 2.创建一个RedHat5.8_x64系统的虚拟机完成系统安装,并配置系统基本的操作环境 3.检测环境是否符合Oracle的最低安装要求,并安装软件包和系统补丁 4.创建用户和组,并设置工作角色分离,修改内核参数设置用户资源控制 5.创建ASM并安装grid 6.安装Orac

oracle进阶笔记-基础准备-sqlplus用户登录

1 sqlplus 登录 本地登录 (登录数据库服务器) oracle 登录 sqlplus 账户名/密码 as 角色名 1.1 sys登录 例如: sqlplus sys/oracle ERROR: ORA-28009: connection as SYS should be as SYSDBA or SYSOPER sys管理员必须有角色sysdba [[email protected] ~]$ sqlplus sys/oracle as sysdba 执行show user ; SQL>

Oracle OCP笔记(31)使用闪回功能

Oracle OCP笔记(31)使用闪回功能 Oracle的闪回功能受到3个数据库结构之一的支持: 撤消数据.闪回恢复区和回收站. 撤消表空间中的撤销数据不仅支持事务回滚,也支持大多数闪回表操作.Flashback Data Archives允许查询先前版本的表行,它在撤销表空间之外的一个或多个表空间中提供一个区域,支持的保留期比撤销表空间还长.闪回日志保存在闪回恢复区中,从而无需执行传统的还原和恢复操作,即可方便地将整个数据库回滚到过去的时间点.每个表空间中的回收站包含一个或多个版本的已删除的