Table of Contents
- Title and Copyright Information
- Preface
- Understanding Oracle Text Application Development
- Getting Started with Oracle Text
- Indexing with Oracle Text
- About Oracle Text Indexes
- Considerations for Oracle Text Indexing
- Location of Text
- Supported Column Types
- Storing Text in the Text Table
- Storing File Path Names
- Storing URLs
- Storing Associated Document Information
- Format and Character Set Columns
- Supported Document Formats
- Summary of DATASTORE Types
- Document Formats and Filtering
- Bypass Rows
- Document Character Set
- Document Language
- Special Characters
- Case-Sensitive Indexing and Querying
- Improved Document Services Performance with a Forward Index
- Language-Specific Features
- About Entity Extraction and CTX_ENTITY
- About Fuzzy Matching and Stemming
- Better Wildcard Query Performance
- Document Section Searches
- Stopwords and Stopthemes
- Index Performance
- Query Performance and Storage of Large Object (LOB) Columns
- Mixed Query Performance
- In-Memory Full Text Search and JSON Full Text Search
- Creating Oracle Text Indexes
- Summary of the Procedure for Creating an Oracle Text Index
- Creating Preferences
- Section Searching Example: Creating HTML Sections
- Using Stopwords and Stoplists
- Creating a CONTEXT Index
- Creating a CTXCAT Index
- Creating a CTXRULE Index
- Creating a JSON Search Index
- Creating an Oracle Text Search Index
- Creating a Hybrid Vector Index
- Maintaining Oracle Text Indexes
- Querying with Oracle Text
- Overview of Queries
- Oracle Text Query Features
- Working with CONTEXT and CTXCAT Grammars in Oracle Text
- The CONTEXT Grammar
- ABOUT Query
- Logical Operators
- Section Searching and HTML and XML
- Proximity Queries with NEAR, and NEAR2 Operators
- Fuzzy, Stem, Soundex, Wildcard and Thesaurus Expansion Operators
- Using CTXCAT Grammar
- Defined Stored Query Expressions
- Calling PL/SQL Functions in CONTAINS
- Optimizing for Response Time
- Counting Hits
- Using DEFINESCORE and DEFINEMERGE for User-Defined Scoring
- The CTXCAT Grammar
- The CONTEXT Grammar
- Presenting Documents in Oracle Text
- Classifying Documents in Oracle Text
- Tuning Oracle Text
- Optimizing Queries with Statistics
- Optimizing Queries for Response Time
- Other Factors That Influence Query Response Time
- Improved Response Time with the FIRST_ROWS(n) Hint for ORDER BY Queries
- Improved Response Time Using the DOMAIN_INDEX_SORT Hint
- Improved Response Time Using the Local Partitioned CONTEXT Index
- Improved Response Time with the Local Partitioned Index for Order by Score
- Improved Response Time with the Query Filter Cache
- Improved Response Time Using the BIG_IO Option of CONTEXT Index
- Improved Response Time Using the SEPARATE_OFFSETS Option of the CONTEXT Index
- Improved Response Time Using the STAGE_ITAB, STAGE_ITAB_MAX_ROWS, and STAGE_ITAB_PARALLEL Options of CONTEXT Index
- Optimizing Queries for Throughput
- Composite Domain Index in Oracle Text
- Performance Tuning with CDI
- Solving Index and Query Bottlenecks by Using Tracing
- Using Parallel Queries
- Tuning Queries with Blocking Operations
- Frequently Asked Questions About Query Performance
- What is query performance?
- What is the fastest type of Oracle Text query?
- Should I collect statistics on my tables?
- How does the size of my data affect queries?
- How does the format of my data affect queries?
- What is the difference between an indexed lookup and a functional lookup
- What tables are involved in queries?
- How is the $R table contention reduced?
- Does sorting the results slow a text-only query?
- How do I make an ORDER BY score query faster?
- Which memory settings affect querying?
- Does out-of-line LOB storage of wide base table columns improve performance?
- How can I speed up a CONTAINS query on more than one column?
- Can I have many expansions in a query?
- How can local partition indexes help?
- Should I query in parallel?
- Should I index themes?
- When should I use a CTXCAT index?
- When is a CTXCAT index NOT suitable?
- What optimizer hints are available and what do they do?
- Frequently Asked Questions About Indexing Performance
- How long should indexing take?
- Which index memory settings should I use?
- How much disk overhead will indexing require?
- How does the format of my data affect indexing?
- Can parallel indexing improve performance?
- How can I improve index performance when I create a local partitioned index?
- How can I tell how much indexing has completed?
- Frequently Asked Questions About Updating the Index
- Searching Document Sections in Oracle Text
- About Oracle Text Document Section Searching
- HTML Section Searching with Oracle Text
- XML Section Searching with Oracle Text
- Using Oracle Text Name Search
- Performing Ubiquitous Search with DBMS_SEARCH APIs
- Working with a Thesaurus in Oracle Text
- Overview of Oracle Text Thesaurus Features
- Defining Terms in a Thesaurus
- Using a Thesaurus in a Query Application
- Loading a Custom Thesaurus and Issuing Thesaurus-Based Queries
- Augmenting the Knowledge Base with a Custom Thesaurus
- Linking New Terms to Existing Terms
- Example of Loading a Thesaurus with ctxload
- Example of Loading a Thesaurus with the CTX_THES.IMPORT_THESAURUS PL/SQL procedure
- Compiling a Loaded Thesaurus
- About the Supplied Knowledge Base
- Using Faceted Navigation
- Using Result Set Interface
- Performing Sentiment Analysis Using Oracle Text
- Working with Sharded Databases
- Administering Oracle Text
- Oracle Text Users and Roles
- DML Queue
- CTX_OUTPUT Package
- CTX_REPORT Package
- Text Manager in Oracle Enterprise Manager
- Servers and Indexing
- Tracking Database Feature Usage in Oracle Enterprise Manager
- Oracle Text on Oracle Real Application Clusters
- Configuring Oracle Text in Oracle Database Vault Environment
- Unsupported Oracle Text Operations in Oracle Database Vault Realm
- Export and Import of Schemas Containing Oracle Text Settings
- Migrating Oracle Text Applications
- CONTEXT Query Application
- CATSEARCH Query Application
- Custom Index Preference Examples
- Datastore Examples
- NULL_FILTER Example: Indexing HTML Documents
- PROCEDURE_FILTER Example
- BASIC_LEXER Example: Setting Printjoin Characters
- MULTI_LEXER Example: Indexing a Multilanguage Table
- BASIC_WORDLIST Example: Enabling Substring and Prefix Indexing
- BASIC_WORDLIST Example: Enabling Wildcard Index