[ 
http://issues.apache.org/jira/browse/LUCENE-487?page=comments#action_12425483 ] 
            
Christophe Bégot commented on LUCENE-487:
-----------------------------------------

I believe that I detected a bug in this extension
The case of file containing only one character does not index correctly. The 
correction seems to work.

DBDirectory.java 
Line 426

Original:

            Blob blob=rs.getBlob("DATA");
            byte[] buffer=null;
            long pos=1;
            int length=0;
            while(pos<blob.length()) {
                
length=BUFFER_SIZE>blob.length()-pos?(int)(blob.length()-pos+1):BUFFER_SIZE;
                buffer=blob.getBytes(pos,length);
                file.addData(buffer);
                
pos+=BUFFER_SIZE>blob.length()-pos?(int)(blob.length()-pos+1):BUFFER_SIZE;
            }

Correction:

            Blob blob=rs.getBlob("DATA");
            byte[] buffer=null;
            long pos=1;
            int length=0;
            while(pos<=blob.length()) {
                
length=BUFFER_SIZE>blob.length()-pos?(int)(blob.length()-pos+1):BUFFER_SIZE;
                buffer=blob.getBytes(pos,length);
                file.addData(buffer);
                
pos+=BUFFER_SIZE>blob.length()-pos?(int)(blob.length()-pos+1):BUFFER_SIZE;
            }

Christophe


> Database as a lucene index target
> ---------------------------------
>
>                 Key: LUCENE-487
>                 URL: http://issues.apache.org/jira/browse/LUCENE-487
>             Project: Lucene - Java
>          Issue Type: New Feature
>          Components: Store
>    Affects Versions: 1.9
>         Environment: MySql (version 4.1 an up), Oracle (version 8.1.7 and up)
>            Reporter: Amir Kibbar
>            Priority: Minor
>         Attachments: files.zip
>
>
> 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