Database as a lucene index target
---------------------------------

         Key: LUCENE-487
         URL: http://issues.apache.org/jira/browse/LUCENE-487
     Project: Lucene - Java
        Type: New Feature
  Components: Store  
    Versions: 1.9    
 Environment: MySql (version 4.1 an up), Oracle (version 8.1.7 and up)
    Reporter: Amir Kibbar
    Priority: Minor


I've written an extension for the Directory object called DBDirectory, that 
allows you to read and write a Lucene index to a database instead of a file 
system.

This is done using blobs. Each blob represents a "file". Also, each blob has a 
name which is equivalent to the filename and a prefix, which is equivalent to a 
directory on a file system. This allows you to create multiple Lucene indexes 
in a single database schema.

The solution uses two tables:
LUCENE_INDEX - which holds the index files as blobs
LUCENE_LOCK - holds the different locks

Attached is my proposed solution. This solution is still very basic, but it 
does the job.
The solution supports Oracle and mysql

To use this solution:

1. Place the files:
- DBDirectory in src/java/org/apache/lucene/store
- TestDBIndex in src/test/org/apache/lucene/index
- objects-mysql.sql in src/db
- objects-oracle.sql in src/db

2. Edit the parameters for the database connection in TestDBIndex

3. Create the database tables using the objects-mysql.sql script (assuming 
you're using mysql)

4. Build Lucene

5. Run TestDBIndex with the database driver in the classpath

I've tested the solution on mysql, but it *should* work on Oracle, I will test 
that in a few days.

Amir

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to