有空再翻译
通常、Oracle Databaseからデータを検索する際に、文章の途中の文言を検索条件にする場合には、LIKEキーワードを条件指定しているかと思います。
(例) Like 検索SQL> select * from doc where text like '%東京購%' ;
Like検索での中間一致・後方一致の場合(%で始まる条件の時)は索引(INDEX)は使われません。
データ(文章)を頭から読み込んで、条件に一致するかをすべて照らし合わせて(マッチング)結果を求めます。
一般的に、データベースから大量のデータの検索を高速にするために、索引(INDEX)を使います。
そのため、Like検索ではデータ量が多くなればなるほど、処理にかかる時間がかかることになります。
それに対して、Oracle Databaseには「Oracle Text」という標準の全文検索の機能があります。
Oracle Textでは、文章の途中に有る(中間一致)データに対しても、索引が使われます。
下の例に有るように、SQL文で処理できるので特別な作りこみは必要ありません。
(例) Oracle Textでの全文検索SQL> select * from doc where contains(text,'東京購') > 0;
Oracle Textの使い方
0.以下のようなテーブルにデータが入っているとします。
1.利用するユーザに権限(ctxapp)を与えます。
SQL> connect / as sysdba
SQL> grant ctxapp to <ユーザ名>;
2.プリファレンス(全文検索対象のデータがどんなものかを示す指定)を作成します。
SQL> connect <ユーザ名>/<パスワード>
SQL> begin
2 ctx_ddl.create_preference('<プリファレンス名>',
3 'JAPANESE_VGRAM_LEXER');
4 end;
5 /
3.全文検索用の索引を作成します。CONTENT索引タイプを指定します。
SQL> create index <索引名> on <表名>(<列名:>)
2 indextype is ctxsys.context
3 parameters ('lexer <プリファレンス名> ');
索引が作成されました。
4.全文検索を実行します。where句にCONTAINSという演算子を使用します。
SQL> select <列名> from <表名>
2 where contains (<列名>,'<検索文字列>')>0;
このように、SQL文のみで設定~実行までが可能です。
Oracle Databaseのみで使える機能なので、追加のアプリケーションを導入したり、作りこむ必要が無いのです。
转自:https://blogs.oracle.com/oracle4engineer/entry/oracleoracle_text
相关推荐
Oracle全文检索技术是数据库管理系统Oracle中用于高效查找和分析文本数据的一种功能。它在不同的Oracle版本中有着不同的名称,如Oracle8.0.x中的ConText,Oracle8i中的interMedia Text,以及从Oracle9i开始的Oracle ...
使用Oracle Text进行检索一般涉及五个步骤:设置首选项、装载文本信息、为文本信息制作索引、对文本信息进行查询以及对查询结果进行必要的处理。其中,制作索引是最为关键的步骤之一。 - **设置首选项**:对于英文...
全文索引是实现全文检索的基础。在达梦数据库中,可以通过以下步骤创建全文索引: - 首先,需要创建一个包含待检索数据的表。例如,这里创建了一个名为`famous_novles`的表,包含了一些关于中国古代四大名著的信息...
由于全文检索索引的特殊性,它能够处理包含任意顺序的多个关键词的搜索需求,例如,在“恒逸信息讲师胡百敬”的例子中,使用全文检索索引,无论关键词顺序如何,都可以找到包含这些关键词的记录。 全文检索在...
全文索引的创建和管理可以通过SQL Server Management Studio进行,包括设置全文目录、选择索引列、定义语言分析规则和筛选器,以及控制全文索引的填充策略。此外,还可以通过T-SQL语句进行编程式操作。 总的来说,...
大数据与数据挖掘技术在现代信息时代扮演着至关重要的角色,而FirteX作为一个高性能全文索引和检索平台,正是应对这一挑战的重要工具。FirteX的出现旨在提供比现有平台如Lucene和Lemur更高效、更灵活的解决方案。 ...
本文将深入探讨全文索引、联合索引、LIKE查询以及JSON查询这四种不同方法在实际应用中的速度比较,并通过实例进行详细解析。 首先,全文索引(Full-text Index)是MySQL提供的一种特殊类型的索引,专门用于提高全文...
全文检索的核心功能包括全文索引器的创建和使用,以及一系列相关的Transact-SQL操作。 全文索引器是用于创建和填充全文目录的组件,这些目录存储在SQL Server的内部结构中,并由Microsoft搜索服务进行维护和管理。...
你无需对自己的数据库文件做任何更改,就可以为数据库文件创建可供编程语言调用的ActiveX DLL全文检索接口,可用于任何与数据库检索有关的查询,例如全文搜索、垂直搜索、海量数据库LIKE式快速查询等。软件主要特点...
51CTO技术沙龙第19期讲义:Sphinx 全文检索实践指南主讲:李沫南部分主要内容:全文检索 VS 数据库检索SELECT * FROM documents WHERE title like '%test%'CPU 100%'30秒内只能进行一次查询'没有找到记录......
全文检索技术克服了传统SQL查询在处理大量文本数据时的局限性,特别是不能使用LIKE谓词查询格式化的二进制数据,以及在海量数据中执行LIKE查询可能导致的效率低下问题。 全文索引的核心是通过创建索引,将文本数据...
Solr全文索引是基于Apache Lucene的开源搜索服务器,它提供了一个分布式、可扩展、高性能的全文检索和分析平台。在本项目中,"Weiz.Solr"似乎是一个C#开发的Solr客户端库,用于简化与Solr服务器的交互。下面将详细...
要在MySQL中实现全文检索,首先需要创建一个包含全文索引的表。创建时,需要指定哪些字段将用于全文检索。例如: ```sql CREATE TABLE 表名 ( cCode CHAR(10), sTitle VARCHAR(250), sContent TEXT, FULLTEXT...
### Oracle全文索引详解 #### 一、Oracle全文索引概述 Oracle全文索引是一种特殊类型的索引,它主要用于提高基于文本的查询性能。自从Oracle 7.3版本开始引入了这一特性,允许用户通过Oracle服务器提供的上下文...
在SQL Server中,全文索引是一种特殊类型的索引,主要用于提高文本数据的检索效率,尤其是在执行复杂模糊查询时。全文索引支持复杂的自然语言查询,能够帮助用户快速定位到含有特定词语或短语的数据记录。 #### 二...
首先,Oracle全文检索的基础是Oracle Text,这是Oracle数据库的一个组件,它支持对非结构化数据进行索引和搜索。Oracle Text通过创建索引来存储文本信息,这些索引可以快速定位和检索相关文档。在构建全文检索的过程...