source: trunk/tools/assistant/lib/fulltextsearch/qindexwriter.cpp

Last change on this file was 846, checked in by Dmitry A. Kuminov, 14 years ago

trunk: Merged in qt 4.7.2 sources from branches/vendor/nokia/qt.

File size: 4.7 KB
Line 
1/****************************************************************************
2**
3** Copyright (C) 2003-2006 Ben van Klinken and the CLucene Team.
4** All rights reserved.
5**
6** Portion Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
7** All rights reserved.
8**
9** This file may be used under the terms of the GNU Lesser General Public
10** License version 2.1 as published by the Free Software Foundation and
11** appearing in the file LICENSE.LGPL included in the packaging of this file.
12** Please review the following information to ensure the GNU Lesser General
13** Public License version 2.1 requirements will be met:
14** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
15**
16****************************************************************************/
17
18#include "qindexwriter_p.h"
19#include "qindexreader_p.h"
20
21#include <CLucene.h>
22#include <CLucene/index/IndexWriter.h>
23
24QT_BEGIN_NAMESPACE
25
26QCLuceneIndexWriterPrivate::QCLuceneIndexWriterPrivate()
27 : QSharedData()
28{
29 writer = 0;
30 deleteCLuceneIndexWriter = true;
31}
32
33QCLuceneIndexWriterPrivate::QCLuceneIndexWriterPrivate(const QCLuceneIndexWriterPrivate &other)
34 : QSharedData()
35{
36 writer = _CL_POINTER(other.writer);
37 deleteCLuceneIndexWriter = other.deleteCLuceneIndexWriter;
38}
39
40QCLuceneIndexWriterPrivate::~QCLuceneIndexWriterPrivate()
41{
42 if (deleteCLuceneIndexWriter)
43 _CLDECDELETE(writer);
44}
45
46
47QCLuceneIndexWriter::QCLuceneIndexWriter(const QString &path,
48 QCLuceneAnalyzer &analyzer,
49 bool create, bool closeDir)
50 : d(new QCLuceneIndexWriterPrivate())
51 , analyzer(analyzer)
52{
53 d->writer = new lucene::index::IndexWriter(path,
54 analyzer.d->analyzer, create, closeDir);
55}
56
57QCLuceneIndexWriter::~QCLuceneIndexWriter()
58{
59 // nothing todo
60}
61
62void QCLuceneIndexWriter::close()
63{
64 d->writer->close();
65}
66
67void QCLuceneIndexWriter::optimize()
68{
69 d->writer->optimize();
70}
71
72qint32 QCLuceneIndexWriter::docCount()
73{
74 return qint32(d->writer->docCount());
75}
76
77QCLuceneAnalyzer QCLuceneIndexWriter::getAnalyzer()
78{
79 return analyzer;
80}
81
82void QCLuceneIndexWriter::addIndexes(const QList<QCLuceneIndexReader*> &readers)
83{
84 using namespace lucene::index;
85 IndexReader** readerArray = new IndexReader*[readers.count()];
86
87 for (int i = 0; i < readers.count(); ++i)
88 readerArray[i] = (readers.at(i))->d->reader;
89
90 d->writer->addIndexes(readerArray);
91 delete [] readerArray;
92}
93
94void QCLuceneIndexWriter::addDocument(QCLuceneDocument &doc,
95 QCLuceneAnalyzer &analyzer)
96{
97 if (doc.d->document)
98 d->writer->addDocument(doc.d->document, analyzer.d->analyzer);
99}
100
101qint32 QCLuceneIndexWriter::getMaxFieldLength() const
102{
103 return qint32(d->writer->getMaxFieldLength());
104}
105
106void QCLuceneIndexWriter::setMaxFieldLength(qint32 value)
107{
108 d->writer->setMaxFieldLength(int32_t(value));
109}
110
111qint32 QCLuceneIndexWriter::getMaxBufferedDocs() const
112{
113 return qint32(d->writer->getMaxBufferedDocs());
114}
115
116void QCLuceneIndexWriter::setMaxBufferedDocs(qint32 value)
117{
118 d->writer->setMaxBufferedDocs(int32_t(value));
119}
120
121qint64 QCLuceneIndexWriter::getWriteLockTimeout() const
122{
123 return qint64(d->writer->getWriteLockTimeout());
124}
125
126void QCLuceneIndexWriter::setWriteLockTimeout(qint64 writeLockTimeout)
127{
128 d->writer->setWriteLockTimeout(int64_t(writeLockTimeout));
129}
130
131qint64 QCLuceneIndexWriter::getCommitLockTimeout() const
132{
133 return qint64(d->writer->getCommitLockTimeout());
134}
135
136void QCLuceneIndexWriter::setCommitLockTimeout(qint64 commitLockTimeout)
137{
138 d->writer->setCommitLockTimeout(int64_t(commitLockTimeout));
139}
140
141qint32 QCLuceneIndexWriter::getMergeFactor() const
142{
143 return qint32(d->writer->getMergeFactor());
144}
145
146void QCLuceneIndexWriter::setMergeFactor(qint32 value)
147{
148 d->writer->setMergeFactor(int32_t(value));
149}
150
151qint32 QCLuceneIndexWriter::getTermIndexInterval() const
152{
153 return qint32(d->writer->getTermIndexInterval());
154}
155
156void QCLuceneIndexWriter::setTermIndexInterval(qint32 interval)
157{
158 d->writer->setTermIndexInterval(int32_t(interval));
159}
160
161qint32 QCLuceneIndexWriter::getMinMergeDocs() const
162{
163 return qint32(d->writer->getMinMergeDocs());
164}
165
166void QCLuceneIndexWriter::setMinMergeDocs(qint32 value)
167{
168 d->writer->setMinMergeDocs(int32_t(value));
169}
170
171qint32 QCLuceneIndexWriter::getMaxMergeDocs() const
172{
173 return qint32(d->writer->getMaxMergeDocs());
174}
175
176void QCLuceneIndexWriter::setMaxMergeDocs(qint32 value)
177{
178 d->writer->setMaxMergeDocs(int32_t(value));
179}
180
181bool QCLuceneIndexWriter::getUseCompoundFile() const
182{
183 return d->writer->getUseCompoundFile();
184}
185
186void QCLuceneIndexWriter::setUseCompoundFile(bool value)
187{
188 d->writer->setUseCompoundFile(value);
189}
190
191QT_END_NAMESPACE
Note: See TracBrowser for help on using the repository browser.