[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: kdesupport/strigi/src/luceneindexer
From: Jos van den Oever <jos () vandenoever ! info>
Date: 2009-01-21 10:28:04
Message-ID: 1232533684.731590.20770.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 914518 by vandenoever:
Use lucene::store::Directory everywhere.
instead of using the path for filesystem directories and RAMDirectory
for a memory index. This makes the code cleaner and memory management
more clear.
M +10 -12 cluceneindexmanager.cpp
M +2 -2 cluceneindexmanager.h
M +1 -5 cluceneindexreader.cpp
--- trunk/kdesupport/strigi/src/luceneindexer/cluceneindexmanager.cpp #914517:914518
@@ -60,9 +60,9 @@
writer = new CLuceneIndexWriter(this);
analyzer = new StandardAnalyzer();
if (path == ":memory:") {
- ramdirectory = new lucene::store::RAMDirectory();
+ directory = new lucene::store::RAMDirectory();
} else {
- ramdirectory = 0;
+ directory = FSDirectory::getDirectory(path.c_str(), false);
}
gettimeofday(&mtime, 0);
@@ -80,7 +80,9 @@
r->second = 0;
}
closeWriter();
- delete ramdirectory;
+ // no reader or writer should be referring to this directory anymore
+ directory->close();
+ delete directory;
delete analyzer;
if (--numberOfManagers == 0) {
// temporarily commented out because of problem with clucene
@@ -126,17 +128,13 @@
void
CLuceneIndexManager::openWriter(bool truncate) {
try {
- if (ramdirectory) {
- bool create = truncate || !IndexReader::indexExists(ramdirectory);
- indexwriter = new IndexWriter(ramdirectory, analyzer, create);
- } else if (!truncate && IndexReader::indexExists(dbdir.c_str())) {
- if (IndexReader::isLocked(dbdir.c_str())) {
- IndexReader::unlock(dbdir.c_str());
+ bool create = truncate || !IndexReader::indexExists(directory);
+ if (!create) {
+ if (IndexReader::isLocked(directory)) {
+ IndexReader::unlock(directory);
}
- indexwriter = new IndexWriter(dbdir.c_str(), analyzer, false);
- } else {
- indexwriter = new IndexWriter(dbdir.c_str(), analyzer, true);
}
+ indexwriter = new IndexWriter(directory, analyzer, create);
} catch (CLuceneError& err) {
fprintf(stderr, "could not create writer: %s\n", err.what());
indexwriter = 0;
--- trunk/kdesupport/strigi/src/luceneindexer/cluceneindexmanager.h #914517:914518
@@ -38,7 +38,7 @@
class IndexReader;
}
namespace store {
- class RAMDirectory;
+ class Directory;
}
}
@@ -58,7 +58,7 @@
void openWriter(bool truncate=false);
public:
- lucene::store::RAMDirectory* ramdirectory;
+ lucene::store::Directory* directory;
explicit CLuceneIndexManager(const std::string& path);
~CLuceneIndexManager();
--- trunk/kdesupport/strigi/src/luceneindexer/cluceneindexreader.cpp #914517:914518
@@ -144,11 +144,7 @@
doccount = -1;
wordcount = -1;
try {
- if (manager->ramdirectory) {
- reader = lucene::index::IndexReader::open(manager->ramdirectory);
- } else {
- reader = lucene::index::IndexReader::open(dbdir.c_str());
- }
+ reader = lucene::index::IndexReader::open(manager->directory);
// fprintf(stderr,
// "READER at %s: %i\n", dbdir.c_str(), reader->numDocs());
} catch (CLuceneError& err) {
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic