lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Christophe Bégot (JIRA) <j...@apache.org>
Subject [jira] Commented: (LUCENE-487) Database as a lucene index target
Date Thu, 03 Aug 2006 10:20:14 GMT
    [ 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: java-dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-dev-help@lucene.apache.org


Mime
View raw message