Oracle的全文索引除了支持文字匹配查询,还支持对文章涵义的查询。这是通过ABOUT操作实现的。
Oracle默认情况下支持英文和法文的文章涵义支持。其他语言可以添加通过用户自定义的语言库来实现相应的功能。
在
这之前需要先安装Companion CD 的Oracle Database 10g Products Installation
Type,其中包括了Oracle Text Supplied Knowledge
Bases,否则在建立含有about的索引时会出错。Companion CD可直接在官网下载,安装也非常简单。
下面看看英文环境下简单的ABOUT操作用法:
SQL> conn myuser/myuser
Connected.
SQL> CREATE TABLE T (ID NUMBER PRIMARY KEY, DOCS VARCHAR2(1000));
Table created.
SQL> INSERT INTO T VALUES (1, 'You can augment the knowledge base to define concepts and terms specific to your
industry or query application. When you do so, ABOUT queries are more precise for the added concepts.');
1 row created.
SQL> INSERT INTO T VALUES (2, 'ABOUT queries perform best when you create a theme component in your index. Theme
components are created by default for English and French.');
1 row created.
SQL> COMMIT;
Commit complete.
SQL> CREATE INDEX IND_T_DOCS ON T(DOCS) INDEXTYPE IS CTXSYS.CONTEXT;
Index created.
SQL> SELECT ID FROM T WHERE CONTAINS(DOCS, 'ABOUT(queries)') > 0;
ID
----------
1
2
SQL> SELECT ID FROM T WHERE CONTAINS(DOCS, 'queries') > 0;
ID
----------
1
2
默认的LEXER是BASIC_LEXER,因此,可以ABOUT操作已经可以起作用了,但是由于采用默认设置,ABOUT查询的精度不高。虽然可以查询到,但是这个单词本身就是在文章中出现的,如果使用文章中没有出现的单词,ABOUT还是查询不到。
SQL> SELECT ID FROM T WHERE CONTAINS(DOCS, 'ABOUT(definition)') > 0;
no rows selected
SQL> SELECT ID FROM T WHERE CONTAINS(DOCS, 'definition') > 0;
no rows selected
如果希望提高ABOUT操作的查询精度,可以设置BASIC_LEXER中的INDEX_THEMES属性的值为YES。
SQL> BEGIN
2 CTX_DDL.CREATE_PREFERENCE('TEST_ABOUT', 'BASIC_LEXER');
3 CTX_DDL.SET_ATTRIBUTE('TEST_ABOUT', 'INDEX_THEMES', 'YES');
4 CTX_DDL.SET_ATTRIBUTE('TEST_ABOUT', 'INDEX_TEXT', 'YES');
5 END;
6 /
SQL> DROP INDEX IND_T_DOCS;
Index dropped.
SQL> CREATE INDEX IND_T_DOCS ON T(DOCS) INDEXTYPE IS CTXSYS.CONTEXT
2 PARAMETERS ('LEXER TEST_ABOUT');
Index created.
SQL> SELECT ID FROM T WHERE CONTAINS(DOCS, 'ABOUT(definition)') > 0;
ID
----------
1
SQL> SELECT ID FROM T WHERE CONTAINS(DOCS, 'specifics') > 0;
no rows selected
现在已经可以看出差别来了,文章中并没有包含definition单词,但是Oracle自动生成了关于definition的主题。
下面再插入一些测试资料,试试主题搜索的使用
SQL> Insert into MYUSER.T (ID, DOCS)
2 Values (3, 'Los Angeles is a city of american');
1 row created.
SQL> Insert into MYUSER.T (ID, DOCS)
2 Values (4, 'Los Angeles');
1 row created.
SQL> Insert into MYUSER.T (ID, DOCS)
2 Values (5, 'San Francisco is a city of american too');
1 row created.
SQL> Insert into MYUSER.T (ID, DOCS)
2 Values (6, 'ABOUT queries perform best when you create a theme component in your index.San Francisco is a
city of american too');
1 row created.
SQL> Insert into MYUSER.T (ID, DOCS)
2 Values (7, 'is Los Angeles');
1 row created.
SQL> commit;
Commit complete.
SQL> exec ctx_ddl.sync_index('IND_T_DOCS');
PL/SQL procedure successfully completed.
SQL> SELECT ID FROM T WHERE CONTAINS(DOCS, 'ABOUT(California)') > 0;
ID
---
3
5
6
由于Los Angeles和San Francisco是所属California洲,所以当查California时,Los Angeles和San Francisco的资料被查出来,但为何第4和第7笔数据不符合条件?可能是因为这些资料没有意义。
顺便再简单说一下STOPTHEME,和STOPWORD类似,Oracle提供了停用主题STOPTHEME,可以人为的屏蔽不希望被ABOUT操作查询到的主题。
SQL> SELECT ID FROM T WHERE CONTAINS(DOCS, 'ABOUT(definition)') > 0;
ID
---
1
SQL> SELECT ID FROM T WHERE CONTAINS(DOCS, 'ABOUT(specifics)') > 0;
ID
---
1
SQL> drop index IND_T_DOCS;
Index dropped.
SQL> BEGIN
2 CTX_DDL.CREATE_STOPLIST('TEST_BASIC', 'BASIC_STOPLIST');
3 CTX_DDL.ADD_STOPTHEME('TEST_BASIC','DEFINITION');
4 END;
5 /
SQL> CREATE INDEX IND_T_DOCS ON T(DOCS) INDEXTYPE IS CTXSYS.CONTEXT
2 PARAMETERS ('LEXER TEST_ABOUT STOPLIST TEST_BASIC');
Index created.
SQL> SELECT ID FROM T WHERE CONTAINS(DOCS, 'ABOUT(definition)') > 0;
no rows selected
SQL> SELECT ID FROM T WHERE CONTAINS(DOCS, 'ABOUT(specifics)') > 0;
ID
---
1
上面的例子中,将DEFINITION添加到了TEST_BASIC停用表中,重建索引后,停用主题开始生效。
相关推荐
WSL2离线安装Ubuntu终极指南:绕过Microsoft Store慢速下载(附最新22.04 LTS离线包)
本文提供WSL2离线安装Ubuntu 22.04 LTS的完整指南,帮助开发者绕过Microsoft Store下载慢的问题。通过PowerShell命令配置环境、获取离线安装包并完成安装,同时包含初始配置、资源优化及常见问题解决方案,助您快速搭建高效的Linux开发环境。
oracle10g升级11g官档文献(以单机数据库10.2.0.5升级到11.2.0.4为例)
11.2.0.4 PATCH SET中的readme.html概述: 1 Patch Set Overview 概述 2 Critical Patch Updates and Patch Set Updates ...
Apache Flink集成HDFS报错Failed to create checkpoint storage at checkpoint coordinator side.
在网上查询相关资料后,在flink的lib目录添加flink-shaded-hadoop-3-3.1.1.7.0.3.0-79-7.0.jar、commons-cli-1.5.0.jar两个包,但报错依旧存在,添加了export HADOOP_CLASSPATH=后面发现是hadoop与flink的兼容性问题,hadoop原先使用的是3.3.4,与多个版本的flink集成都会出现报错,最后将Hadoop的版本改成3.1.3,使用flink run运行jar包就没有这个错误了,在hdfs上成功保存了检查点。
【MOS】手动升级到数据库 12c 版本1(12.1)的完整核对清单 (文档 ID 2047701.1)
手动升级到数据库 12c 版本1(12.1)的完整核对清单 (文档 ID 2047701.1) Complete Checklist for Manual Upgrades to Oracle Da...
OpenWRT软件源更换保姆级教程:从国内镜像到官方源一键切换(含常见报错解决)
本文提供OpenWRT软件源更换的详细教程,涵盖从国内镜像源到官方源的切换方法,并深度解析常见报错解决方案。针对国内网络环境,指导用户如何精准定位系统信息、备份配置、选择并配置清华等国内镜像源,以及处理签名验证失败、依赖缺失、404错误等典型问题,旨在提升软件包管理效率与稳定性。
光学设计必知:Ansys Zemax中6种系统孔径类型的适用场景全解析
本文深入解析Ansys Zemax中6种系统孔径类型的适用场景,包括入瞳直径、像方空间F/#、物方空间NA等,帮助光学设计师精准控制光线选择和成像质量。通过实际案例和代码示例,详细讲解各孔径类型的计算原理、参数设置及在显微系统、激光扩束等场景中的优化策略,提升复杂光学系统设计效率。
全文索引方面
09年马上要结束了,BLOG每天更新又坚持了一年,目前文章总数1700多篇,其中纯技术文章将近1300篇。 我比较喜欢的一句话:十年磨一剑。以前提到过,坚持10年可能会比较困难,那么至少要坚持5年,到目前为止,BLOG更新已经...
瑞芯微RK3588与FPGA的PCIe DMA通信性能优化实战
本文深入探讨了瑞芯微RK3588与FPGA之间PCIe DMA通信的性能优化实战。针对高速数据采集、AI推理等场景下的带宽瓶颈,文章从驱动配置、DMA描述符、中断处理、零拷贝技术及系统级调优等多个层面,提供了详细的优化策略与代码示例,旨在充分释放PCIe 3.0的理论带宽潜力,提升数据传输效率与稳定性。
ORACLE 全文检索:
全文索引: ORACLE TEXT DATASTORE PREFERENCE(一):介绍DIRECT_DATASTORE。 ORACLE TEXT DATASTORE PREFERENCE(二):介绍MULTI_COLUMN...
T527 uart串口配置导致系统进不去
T527 s_uart串口配置导致系统进不去。
【72】【OpenCV C++ & C#】 将cv::Mat 图像转换成imgINFO 传给c#在winform上显示,OpenCV C++如何将处理后的图像传给C#呢? 如何获取图像信息呢?
本文介绍了通过OpenCV C++处理图像后传递给C#的方法。首先定义了一个结构体imgINFO存储图像信息(数据指针、宽高、通道数等),然后通过getImgInfo函数将cv::Mat转换为该结构体。文章特别指出当图像宽度不能被4整除时可能出现失真问题,并给出了两种解决方案:调整输入图像或创建新的对齐图像。此外还解释了img.step和img.cols*img.elemSize()的关系,说明它们在大多数情况下是相等的。最后提到需要通过DLL将结构体传递给C#(具体方法参见其他文章)。
Oracle静默安装,含仅软件安装和数据库安装及常见报错处理方法DBT-10317 DBT-05509 [FATAL] ORA-03114
本文详解Oracle 19c单机版静默安装与数据库创建全流程,涵盖目录配置、响应文件编写、安装及建库命令,附常见报错(如DBT-10317、ORA-03114)解析与解决方案,包含删库指令与日志分析,适合内网环境自学实战,免费干货,实用性强。
【从零到一】Jetson Nano上YOLOv5部署完全攻略:零基础小白也能玩转边缘AI推理
文章摘要: 本文详细介绍了在Jetson Nano边缘设备上部署YOLOv5目标检测模型的完整流程。从硬件准备、系统镜像烧录、基础环境配置,到CUDA/cuDNN验证、Python虚拟环境搭建及PyTorch安装,逐步指导开发者完成部署准备。教程兼顾理论原理与实践操作,提供Python和C++两种实现方案,并涵盖TensorRT优化、实时检测等生产级应用场景,帮助零基础开发者快速掌握边缘AI推理技术,实现高性能目标检测应用。
Spring 事务详解:@Transactional 如何生效、何时回滚、传播行为怎么选
从订单与库存写入出发,拆解 @Transactional 的代理调用链、默认回滚规则与自调用问题;通过 Spring Boot + H2 的五个验证用例比较 REQUIRED、REQUIRES_NEW、NESTED,并说明数据库事务与 Redis、消息和远程接口的边界。
win10 跳过U8环境检测的IE WebControls.rar
win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。
SIMATIC S7-1200, S7-1500 PID 控制[手册]
SIMATIC S7-1200, S7-1500 PID 控制[手册]
Oracle多租户集群PDB异机恢复至单机部署数据库
本文详细演示了将Oracle RAC集群中的PDB(RMAN_PDB)通过RMAN备份恢复至单机CDB的全过程。首先在源库创建测试PDB并插入数据,随后配置RMAN备份路径,备份该PDB及其元数据文件。接着将备份文件传输至单机环境,启动实例并恢复控制文件与数据文件,最后利用DBMS_PDB.EXPOSE_PDB_FROM_RMAN生成PDB描述文件,将其插入新单机CDB中,实现PDB的独立使用。整个流程涵盖数据准备、备份、恢复及插入,完整验证了跨环境PDB迁移的可行性。
温度PID控制PLC程序
温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值
Mysql数据库基础篇(三):全面掌握数据库与数据表操作:深度剖析底层文件差异与核心管理机制
如果你想彻底改掉某个字段的名字,应该使用 change。实例:将 employee表中的 name列修改为xingming注意:使用 change时,即便不改变数据类型,在指定了新列名后依然需要完整地写一遍它的数据类型与约束定义。
最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版
Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。
智叟云集系统 · 数据分层与管理体验
智叟云集系统 · 数据分层与管理体验 · 数据分层与管理体验。
oracle直方图测试
预期:没有直方图时,优化器假设 status 分布均匀(选择性 = 1/NDV ≈ 1/100),两个查询的预估行数(E-Rows)会非常接近(约 1000 行),很可能对两个查询都选择索引扫描,或者都选择全表扫描,无法区分数据量的巨大差异。
Oracle 19c RAC ASM 在线扩容实战
最近有一套 Oracle 19c RAC 数据库,DATA 磁盘组空间使用率已经接近 90%,需要扩容。环境是两节点 RAC,底层使用 Dell EMC SAN 存储,通过 Multipath 管理共享磁盘,存储侧已经分配好一块 2TB 的新 LUN,只需要在操作系统上识别,然后加入 ASM 磁盘组。整个过程不需要停库,本文记录一下实际操作步骤。这次 Oracle 19c RAC ASM 扩容整体比较顺利。
15_MySQL 数据同步与迁移方案 —— 复制 / DataX / Canal / 异构同步(对标 Oracle GoldenGate)
15_MySQL 数据同步与迁移方案 —— 复制 / DataX / Canal / 异构同步(对标 Oracle GoldenGate) 系列定位 :《MySQL 数据库全栈运维实战系列》第 15 篇,与《Oracle 数据库全栈运维实战系列(VMware 版)》同构对标(Oracle 15 OG…
任务8-1 数据库用户权限管理
本实战训练MySQL权限管理的完整流程。通过CREATE USER建用户,GRANT按需授权,SHOW GRANTS核查权限。岗位变动时,使用REVOKE回收多余权限,并用FLUSH PRIVILEGES刷新缓存。全流程旨在落实最小权限原则,规范数据库安全运维。
带着小白学习-微服务-5 实战:配置中心-数据库连接
如前所述,服务治理主要包含注册中心,前面所有的微服务子工程均已注册到nacos,然后由相应的应用到nacos进行拉取。接下来,我们将使用nacos的配置中心,用于保存和分发应用运行所需的动态配置。比如数据库的各类信息等。
SQLServer常用指令手册
覆盖数据库创建、表与约束、增删改查、查询进阶、索引、视图/存储过程/函数/触发器、事务、权限、运维排查。适用版本:SQL Server 2012 及以上(标注的条目为对应版本起可用)。
MySQL数据库和表的操作
本文系统介绍了MySQL数据库与表的基本操作。包括创建、查看、修改和删除数据库,重点讲解字符集与校验规则对大小写敏感性的影响;通过SHOW、ALTER、DROP等命令实现数据库管理;介绍数据备份(mysqldump)与恢复(SOURCE)方法;并详细阐述表的创建、结构查看(DESC)、字段增删改(ALTER TABLE)及表删除操作,涵盖字段类型、注释、索引等关键要素,为数据库开发与维护提供完整指导。
Oracle 19c 在线重定义后旧表空间清理及 ASM 存储资源回收 SOP
Oracle 19c 在线重定义后旧表空间清理与 ASM 存储资源回收 SOP
899



被折叠的 条评论
为什么被折叠?



