LDI Docs – Appendix B (Lucene Domain Index Storage)

B Lucene Domain Index Storage

OJVMDirectory class creates a set of Oracle objects to represent Lucene Inverted Index and Domain Index functionality. First it creates a table named IDX_NAME$T (IDX_NAME is your Lucene Domain Index used at create index DDL statement) with this structure:

Name Null? Type
NAME NOT NULL VARCHAR2(30)
LAST_MODIFIED TIMESTAMP(6)
FILE_SIZE NUMBER(38)
DATA BLOB
DELETED CHAR(1)

Also have and index based on IDX_NAME$T.DELETED column to speedy up purge operations. To enqueue operation at the index it defines a DBMS_AQ Queue IDX_NAME$Q with his storage table IDX_NAME$QT. IDX_NAME$Q queue have payload defined as LUCENE_MSG_TYP object. This object type is defined as:

Name Null? Type
RIDLIST SYS.ODCIRIDLIST
OPERATION VARCHAR2(32)

SYS.ODCIRIDLIST is an special structure defined by ODCI API to hold a list of rowid changed by an DML operation. OPERATION is one of insert, delete, update, rebuild, optimize, insert-ram or insert-disk reserved keyword. rebuild and optimize operations are used with SyncMode:OnLine to perform these tasks automatically using a background process. insert-ram and insert-disk are messages enqueued internally by LDI when ParallelDegree is enabled.
When using ParallelDegree grater than 1 the structure showed above is replicated for N parallel storages used when indexing, it means that, for example, with ParallelDegree:2 for an index name SOURCE_BIG_LIDX there will be two extra structures named SOURCE_BIG_LIDX$0{$Q|$QT|$T} and SOURCE_BIG_LIDX$1{$Q|$QT|$T}.

Doc Links

Previous / LDI Docs – Appendix A (Parameter reference and syntax)
Next / LDI Docs – Appendix C (JUnit test suites explained)

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.