[
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]