Table of Contents
- List of Examples
- List of Figures
- List of Tables
- Title and Copyright Information
- Preface
- Changes in This Release for Oracle Text Application Developer's Guide
- 1 Understanding Oracle Text Application Development
- 2 Getting Started with Oracle Text
- 3
Indexing with Oracle Text
- 3.1 About Oracle Text Indexes
- 3.2
Considerations for Oracle Text Indexing
- 3.2.1 Location of Text
- 3.2.2 Document Formats and Filtering
- 3.2.3 Bypassing Rows for Indexing
- 3.2.4 Document Character Set
- 3.2.5 Document Language
- 3.2.6 Indexing Special Characters
- 3.2.7 Case-Sensitive Indexing and Querying
- 3.2.8 Document Services Procedures Performance and Forward Index
- 3.2.9 Language-Specific Features
- 3.2.10 About Entity Extraction and CTX_ENTITY
- 3.2.11 Fuzzy Matching and Stemming
- 3.2.12 Better Wildcard Query Performance
- 3.2.13 Document Section Searching
- 3.2.14 Stopwords and Stopthemes
- 3.2.15 Index Performance
- 3.2.16 Query Performance and Storage of Large Object (LOB) Columns
- 3.2.17 Mixed Query Performance
- 3.3
Creating Oracle Text Indexes
- 3.3.1 Summary of Procedure for Creating a Text Index
- 3.3.2
Creating Preferences
- 3.3.2.1 Datastore Examples
- 3.3.2.2 NULL_FILTER Example: Indexing HTML Documents
- 3.3.2.3 PROCEDURE_FILTER Example
- 3.3.2.4 BASIC_LEXER Example: Setting Printjoin Characters
- 3.3.2.5 MULTI_LEXER Example: Indexing a Multi-Language Table
- 3.3.2.6 BASIC_WORDLIST Example: Enabling Substring and Prefix Indexing
- 3.3.3 Creating Section Groups for Section Searching
- 3.3.4 Using Stopwords and Stoplists
- 3.3.5
Creating a CONTEXT Index
- 3.3.5.1 CONTEXT Index and DML
- 3.3.5.2 Default CONTEXT Index Example
- 3.3.5.3 Incrementally Creating an Index with ALTER INDEX and CREATE INDEX
- 3.3.5.4 Incrementally Creating a CONTEXT Index with POPULATE_PENDING
- 3.3.5.5 Custom CONTEXT Index Example: Indexing HTML Documents
- 3.3.5.6 CONTEXT Index Example: Query Processing with FILTER BY and ORDER BY
- 3.3.5.7 DATASTORE Triggers in Release 12c
- 3.3.6 Creating a CTXCAT Index
- 3.3.7 Creating a CTXRULE Index
- 3.3.8 Create Search Index for JSON
- 3.4
Maintaining Oracle Text Indexes
- 3.4.1 Viewing Index Errors
- 3.4.2 Dropping an Index
- 3.4.3 Resuming Failed Index
- 3.4.4
Re-creating an Index
- 3.4.4.1 Re-creating a Global Index
- 3.4.4.2 Re-creating a Local Partitioned Index
- 3.4.4.3 Re-creating a Global Index with Time Limit for Synch
- 3.4.4.4 Re-creating a Global Index with Scheduled Swap
- 3.4.4.5 Re-creating a Local Index with All-at-Once Swap
- 3.4.4.6 Scheduling Local Index Re-creation with All-at-Once Swap
- 3.4.4.7 Re-creating a Local Index with Per-Partition Swap
- 3.4.5 Rebuilding an Index
- 3.4.6 Dropping a Preference
- 3.5 Managing DML Operations for a CONTEXT Index
- 4
Querying with Oracle Text
- 4.1
Overview of Queries
- 4.1.1 Querying with CONTAINS
- 4.1.2 Querying with CATSEARCH
- 4.1.3 Querying with MATCHES
- 4.1.4 Word and Phrase Queries
- 4.1.5 Querying Stopwords
- 4.1.6 ABOUT Queries and Themes
- 4.1.7 Query Expressions
- 4.1.8 Case-Sensitive Searching
- 4.1.9 Query Feedback
- 4.1.10 Query Explain Plan
- 4.1.11 Using a Thesaurus in Queries
- 4.1.12 About Document Section Searching
- 4.1.13 Using Query Templates
- 4.1.14 Query Rewrite
- 4.1.15 Query Relaxation
- 4.1.16 Query Language
- 4.1.17 Ordering By SDATA Sections
- 4.1.18 Alternative and User-defined Scoring
- 4.1.19 Alternative Grammar
- 4.1.20 Query Analysis
- 4.1.21 Other Query Features
- 4.2
The CONTEXT Grammar
- 4.2.1 ABOUT Query
- 4.2.2 Logical Operators
- 4.2.3 Section Searching and HTML and XML
- 4.2.4 Proximity Queries with NEAR, NEAR_ACCUM, and NEAR2 Operators
- 4.2.5 Fuzzy, Stem, Soundex, Wildcard and Thesaurus Expansion Operators
- 4.2.6 Using CTXCAT Grammar
- 4.2.7 Stored Query Expressions
- 4.2.8 Calling PL/SQL Functions in CONTAINS
- 4.2.9 Optimizing for Response Time
- 4.2.10 Counting Hits
- 4.2.11 Using DEFINESCORE and DEFINEMERGE for User-defined Scoring
- 4.3 The CTXCAT Grammar
- 4.1
Overview of Queries
- 5 Presenting Documents in Oracle Text
- 6 Classifying Documents in Oracle Text
- 7
Tuning Oracle Text
- 7.1 Optimizing Queries with Statistics
- 7.2
Optimizing Queries for Response Time
- 7.2.1 Other Factors that Influence Query Response Time
- 7.2.2 Improved Response Time with FIRST_ROWS(n) Hint for ORDER BY Queries
- 7.2.3 Improved Response Time Using the DOMAIN_INDEX_SORT Hint
- 7.2.4 Improved Response Time using Local Partitioned CONTEXT Index
- 7.2.5 Improved Response Time with Local Partitioned Index for Order by Score
- 7.2.6 Improved Response Time with Query Filter Cache
- 7.2.7 Improved Response Time using BIG_IO Option of CONTEXT Index
- 7.2.8 Improved Response Time using SEPARATE_OFFSETS Option of CONTEXT Index
- 7.2.9 Improved Response Time Using STAGE_ITAB, STAGE_ITAB_MAX_ROWS, STAGE_ITAB_PARALLEL Options of CONTEXT Index
- 7.3 Optimizing Queries for Throughput
- 7.4 Composite Domain Index (CDI) in Oracle Text
- 7.5 Performance Tuning with CDI
- 7.6 Solving Index and Query Bottlenecks Using Tracing
- 7.7 Using Parallel Queries
- 7.8 Tuning Queries with Blocking Operations
- 7.9
Frequently Asked Questions About Query Performance
- 7.9.1 What is Query Performance?
- 7.9.2 What is the fastest type of text query?
- 7.9.3 Should I collect statistics on my tables?
- 7.9.4 How does the size of my data affect queries?
- 7.9.5 How does the format of my data affect queries?
- 7.9.6 What is a functional versus an indexed lookup?
- 7.9.7 What tables are involved in queries?
- 7.9.8 How is $R table contention reduced?
- 7.9.9 Does sorting the results slow a text-only query?
- 7.9.10 How do I make an ORDER BY score query faster?
- 7.9.11 Which memory settings affect querying?
- 7.9.12 Does out-of-line LOB storage of wide base table columns improve performance?
- 7.9.13 How can I make a CONTAINS query on more than one column faster?
- 7.9.14 Is it OK to have many expansions in a query?
- 7.9.15 How can local partition indexes help?
- 7.9.16 Should I query in parallel?
- 7.9.17 Should I index themes?
- 7.9.18 When should I use a CTXCAT index?
- 7.9.19 When is a CTXCAT index NOT suitable?
- 7.9.20 What optimizer hints are available, and what do they do?
- 7.10
Frequently Asked Questions About Indexing Performance
- 7.10.1 How long should indexing take?
- 7.10.2 Which index memory settings should I use?
- 7.10.3 How much disk overhead will indexing require?
- 7.10.4 How does the format of my data affect indexing?
- 7.10.5 Can parallel indexing improve performance?
- 7.10.6 How can I improve index performance for creating local partitioned index?
- 7.10.7 How can I tell how much indexing has completed?
- 7.11 Frequently Asked Questions About Updating the Index
- 8
Searching Document Sections in Oracle Text
- 8.1 About Oracle Text Document Section Searching
- 8.2 HTML Section Searching with Oracle Text
- 8.3
XML Section Searching with Oracle Text
- 8.3.1 Automatic Sectioning
- 8.3.2 Attribute Searching
- 8.3.3 Creating Document Type Sensitive Sections
- 8.3.4
Path Section Searching
- 8.3.4.1 Creating an Index with PATH_SECTION_GROUP
- 8.3.4.2 Top-Level Tag Searching
- 8.3.4.3 Any-Level Tag Searching
- 8.3.4.4 Direct Parentage Searching
- 8.3.4.5 Tag Value Testing
- 8.3.4.6 Attribute Searching
- 8.3.4.7 Attribute Value Testing
- 8.3.4.8 Path Testing
- 8.3.4.9 Section Equality Testing with HASPATH
- 9 Using Oracle Text Name Search
- 10
Working With a Thesaurus in Oracle Text
- 10.1 Overview of Oracle Text Thesaurus Features
- 10.2 Defining Terms in a Thesaurus
- 10.3 Using a Thesaurus in a Query Application
- 10.4 About the Supplied Knowledge Base
- 11 Using XML Query Result Set Interface
- 12 Performing Sentiment Analysis Using Oracle Text
- 13 Administering Oracle Text
- 14 Migrating Oracle Text Applications
- A CONTEXT Query Application
- B CATSEARCH Query Application
- Glossary
- Index