本文整理汇总了C++中IndexReader::numDocs方法的典型用法代码示例。如果您正苦于以下问题:C++ IndexReader::numDocs方法的具体用法?C++ IndexReader::numDocs怎么用?C++ IndexReader::numDocs使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IndexReader
的用法示例。
在下文中一共展示了IndexReader::numDocs方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: while
_LUCENE_THREAD_FUNC(atomicSearchTest, _directory){
Directory* directory = (Directory*)_directory;
uint64_t stopTime = Misc::currentTimeMillis() + 1000*ATOMIC_SEARCH_RUN_TIME_SEC;
int count = 0;
try {
while(Misc::currentTimeMillis() < stopTime && !atomicSearchFailed) {
IndexReader* r = IndexReader::open(directory);
try {
if ( 100 != r->numDocs() ){
fprintf(stderr, "err 2: 100 != %d \n", r->numDocs());
atomicSearchFailed = true;
}
} catch (CLuceneError& e) {
fprintf(stderr, "err 3: %d:%s\n", e.number(), e.what());
atomicSearchFailed = true;
break;
}
r->close();
_CLDELETE(r);
count++;
}
} catch (CLuceneError& e) {
fprintf(stderr, "err 4: #%d: %s\n", e.number(), e.what());
atomicSearchFailed = true;
}
_LUCENE_THREAD_FUNC_RETURN(0);
}
示例2: checkDir
// BK> all test functions are the same except RAMDirectory constructor, so shared code moved here
void checkDir(CuTest *tc, MockRAMDirectory * ramDir) {
// Check size
CuAssertTrue(tc, ramDir->sizeInBytes == ramDir->getRecomputedSizeInBytes(), _T("RAMDir size"));
// open reader to test document count
IndexReader * reader = IndexReader::open(ramDir);
CuAssertEquals(tc, docsToAdd, reader->numDocs(), _T("document count"));
// open search to check if all doc's are there
IndexSearcher * searcher = _CLNEW IndexSearcher(reader);
// search for all documents
Document doc;
for (int i = 0; i < docsToAdd; i++) {
searcher->doc(i, doc);
CuAssertTrue(tc, doc.getField(_T("content")) != NULL, _T("content is NULL"));
}
// cleanup
reader->close();
searcher->close();
_CLLDELETE(reader);
_CLLDELETE(searcher);
}
示例3: getAllKeys
QStringList ZefaniaLex::getAllKeys()
{
try {
if(!hasIndex()) {
if(buildIndex() != 0) {
return QStringList();
}
}
const QString index = indexPath();
IndexReader* reader = IndexReader::open(index.toStdString().c_str());
QStringList ret;
for(int i = 0; i < reader->numDocs(); i++) {
Document doc;
reader->document(i, doc);
#ifdef OBV_USE_WSTRING
ret.append(QString::fromWCharArray(doc.get(_T("key"))));
#else
ret.append(QString::fromUtf16((const ushort*)doc.get(_T("key"))));
#endif
}
return ret;
}
catch(...)
{
return QStringList();
}
}
示例4: assertEquals
/**
* Verifies that the index has the correct number of documents.
*/
void TestSpansAdvanced2::testVerifyIndex()
{
IndexReader * reader = IndexReader::open( directory );
assertEquals( 8, reader->numDocs() );
reader->close();
_CLDELETE( reader );
}
示例5: getAllKeys
QStringList ZefaniaLex::getAllKeys()
{
if(!m_entryList.isEmpty()) {
return m_entryList;
}
try {
if(!hasIndex()) {
if(buildIndex() != 0) {
return QStringList();
}
}
const QString index = indexPath();
IndexReader* reader = IndexReader::open(index.toStdString().c_str());
QStringList ret;
for(int i = 0; i < reader->numDocs(); i++) {
Document doc;
reader->document(i, doc);
ret.append(SearchTools::toQString(doc.get(_T("key"))));
}
m_entryList = ret;
return ret;
}
catch(CLuceneError &err) {
myWarning() << "clucene error = " << err.what();
return QStringList();
}
catch(...) {
return QStringList();
}
}
示例6: verifyNumDocs
static void verifyNumDocs(CuTest *tc, Directory * dir, int numDocs) {
IndexReader * reader = IndexReader::open(dir);
assertEquals(numDocs, reader->maxDoc());
assertEquals(numDocs, reader->numDocs());
reader->close();
_CLLDELETE(reader);
}
示例7: testMergeAfterCopy
// case 4: tail segments, invariants hold, copy, invariants not hold
void testMergeAfterCopy(CuTest * tc) {
// main directory
Directory * dir = _CLNEW RAMDirectory();
// auxiliary directory
Directory * aux = _CLNEW RAMDirectory();
WhitespaceAnalyzer an;
setUpDirs(tc, dir, aux);
IndexReader * reader = IndexReader::open(aux);
for (int i = 0; i < 20; i++) {
reader->deleteDocument(i);
}
assertEquals(10, reader->numDocs());
reader->close();
_CLLDELETE(reader);
IndexWriter4Test * writer = newWriter(dir, &an, false);
writer->setMaxBufferedDocs(4);
writer->setMergeFactor(4);
ValueArray<Directory*> dirs(2);
dirs[0] = aux;
dirs[1] = aux;
writer->addIndexesNoOptimize(dirs);
assertEquals(1020, writer->docCount());
assertEquals(1000, writer->getDocCount(0));
writer->close();
_CLLDELETE(writer);
// make sure the index is correct
verifyNumDocs(tc, dir, 1020);
dir->close();
_CLLDELETE(dir);
aux->close();
_CLLDELETE(aux);
}
示例8: testRangeFilterId
void testRangeFilterId() {
IndexReader* reader = IndexReader::open(index);
IndexSearcher* search = new IndexSearcher(reader);
int medId = ((maxId - minId) / 2);
std::tstring minIPstr = pad(minId);
const TCHAR* minIP = minIPstr.c_str();
std::tstring maxIPstr = pad(maxId);
const TCHAR* maxIP = maxIPstr.c_str();
std::tstring medIPstr = pad(medId);
const TCHAR* medIP = medIPstr.c_str();
size_t numDocs = static_cast<size_t>(reader->numDocs());
assertEqualsMsg(_T("num of docs"), numDocs, static_cast<size_t>(1+ maxId - minId));
Hits* result;
Term* term = _CLNEW Term(_T("body"),_T("body"));
Query* q = _CLNEW TermQuery(term);
_CLDECDELETE(term);
// test id, bounded on both ends
Filter* f = _CLNEW RangeFilter(_T("id"),minIP,maxIP,T,T);
result = search->search(q, f);
assertEqualsMsg(_T("find all"), numDocs, result->length());
_CLLDELETE(result);
_CLLDELETE(f);
f=_CLNEW RangeFilter(_T("id"),minIP,maxIP,T,F);
result = search->search(q,f);
assertEqualsMsg(_T("all but last"), numDocs-1, result->length());
_CLLDELETE(result);
_CLLDELETE(f);
f =_CLNEW RangeFilter(_T("id"),minIP,maxIP,F,T);
result = search->search(q,f);
assertEqualsMsg(_T("all but first"), numDocs-1, result->length());
_CLLDELETE(result);
_CLLDELETE(f);
f=_CLNEW RangeFilter(_T("id"),minIP,maxIP,F,F);
result = search->search(q,f);
assertEqualsMsg(_T("all but ends"), numDocs-2, result->length());
_CLLDELETE(result);
_CLLDELETE(f);
f=_CLNEW RangeFilter(_T("id"),medIP,maxIP,T,T);
result = search->search(q,f);
assertEqualsMsg(_T("med and up"), 1+ maxId-medId, result->length());
_CLLDELETE(result);
_CLLDELETE(f);
f=_CLNEW RangeFilter(_T("id"),minIP,medIP,T,T);
result = search->search(q,f);
assertEqualsMsg(_T("up to med"), 1+ medId-minId, result->length());
_CLLDELETE(result);
_CLLDELETE(f);
// unbounded id
f=_CLNEW RangeFilter(_T("id"),minIP,NULL,T,F);
result = search->search(q,f);
assertEqualsMsg(_T("min and up"), numDocs, result->length());
_CLLDELETE(result);
_CLLDELETE(f);
f=_CLNEW RangeFilter(_T("id"),NULL,maxIP,F,T);
result = search->search(q,f);
assertEqualsMsg(_T("max and down"), numDocs, result->length());
_CLLDELETE(result);
_CLLDELETE(f);
f=_CLNEW RangeFilter(_T("id"),minIP,NULL,F,F);
result = search->search(q,f);
assertEqualsMsg(_T("not min, but up"), numDocs-1, result->length());
_CLLDELETE(result);
_CLLDELETE(f);
f=_CLNEW RangeFilter(_T("id"),NULL,maxIP,F,F);
result = search->search(q,f);
assertEqualsMsg(_T("not max, but down"), numDocs-1, result->length());
_CLLDELETE(result);
_CLLDELETE(f);
f=_CLNEW RangeFilter(_T("id"),medIP,maxIP,T,F);
result = search->search(q,f);
assertEqualsMsg(_T("med and up, not max"), maxId-medId, result->length());
_CLLDELETE(result);
_CLLDELETE(f);
f=_CLNEW RangeFilter(_T("id"),minIP,medIP,F,T);
result = search->search(q,f);
assertEqualsMsg(_T("not min, up to med"), medId-minId, result->length());
_CLLDELETE(result);
_CLLDELETE(f);
//.........这里部分代码省略.........
示例9: testRangeFilterRand
void testRangeFilterRand()
{
IndexReader* reader = IndexReader::open(index);
IndexSearcher* search = _CLNEW IndexSearcher(reader);
std::tstring minRPstr = pad(minR);
const TCHAR* minRP = minRPstr.c_str();
std::tstring maxRPstr = pad(maxR);
const TCHAR* maxRP = maxRPstr.c_str();
size_t numDocs = static_cast<size_t>(reader->numDocs());
assertEqualsMsg(_T("num of docs"), numDocs, 1+ maxId - minId);
Hits* result;
Term* term = _CLNEW Term(_T("body"),_T("body"));
Query* q = _CLNEW TermQuery(term);
_CLDECDELETE(term);
// test extremes, bounded on both ends
Filter* f = _CLNEW RangeFilter(_T("rand"),minRP,maxRP,T,T);
result = search->search(q,f);
assertEqualsMsg(_T("find all"), numDocs, result->length());
_CLLDELETE(result); _CLLDELETE(f);
f=_CLNEW RangeFilter(_T("rand"),minRP,maxRP,T,F);
result = search->search(q,f);
assertEqualsMsg(_T("all but biggest"), numDocs-1, result->length());
_CLLDELETE(result); _CLLDELETE(f);
f=_CLNEW RangeFilter(_T("rand"),minRP,maxRP,F,T);
result = search->search(q,f);
assertEqualsMsg(_T("all but smallest"), numDocs-1, result->length());
_CLLDELETE(result); _CLLDELETE(f);
f=_CLNEW RangeFilter(_T("rand"),minRP,maxRP,F,F);
result = search->search(q,f);
assertEqualsMsg(_T("all but extremes"), numDocs-2, result->length());
_CLLDELETE(result); _CLLDELETE(f);
// unbounded
f=_CLNEW RangeFilter(_T("rand"),minRP,NULL,T,F);
result = search->search(q,f);
assertEqualsMsg(_T("smallest and up"), numDocs, result->length());
_CLLDELETE(result); _CLLDELETE(f);
f=_CLNEW RangeFilter(_T("rand"),NULL,maxRP,F,T);
result = search->search(q,f);
assertEqualsMsg(_T("biggest and down"), numDocs, result->length());
_CLLDELETE(result); _CLLDELETE(f);
f=_CLNEW RangeFilter(_T("rand"),minRP,NULL,F,F);
result = search->search(q,f);
assertEqualsMsg(_T("not smallest, but up"), numDocs-1, result->length());
_CLLDELETE(result); _CLLDELETE(f);
f=_CLNEW RangeFilter(_T("rand"),NULL,maxRP,F,F);
result = search->search(q,f);
assertEqualsMsg(_T("not biggest, but down"), numDocs-1, result->length());
_CLLDELETE(result); _CLLDELETE(f);
// very small sets
f=_CLNEW RangeFilter(_T("rand"),minRP,minRP,F,F);
result = search->search(q,f);
assertEqualsMsg(_T("min,min,F,F"), 0, result->length());
_CLLDELETE(result); _CLLDELETE(f);
f=_CLNEW RangeFilter(_T("rand"),maxRP,maxRP,F,F);
result = search->search(q,f);
assertEqualsMsg(_T("max,max,F,F"), 0, result->length());
_CLLDELETE(result); _CLLDELETE(f);
f=_CLNEW RangeFilter(_T("rand"),minRP,minRP,T,T);
result = search->search(q,f);
assertEqualsMsg(_T("min,min,T,T"), 1, result->length());
_CLLDELETE(result); _CLLDELETE(f);
f=_CLNEW RangeFilter(_T("rand"),NULL,minRP,F,T);
result = search->search(q,f);
assertEqualsMsg(_T("nul,min,F,T"), 1, result->length());
_CLLDELETE(result); _CLLDELETE(f);
f=_CLNEW RangeFilter(_T("rand"),maxRP,maxRP,T,T);
result = search->search(q,f);
assertEqualsMsg(_T("max,max,T,T"), 1, result->length());
_CLLDELETE(result); _CLLDELETE(f);
f=_CLNEW RangeFilter(_T("rand"),maxRP,NULL,T,F);
result = search->search(q,f);
assertEqualsMsg(_T("max,nul,T,T"), 1, result->length());
_CLLDELETE(result); _CLLDELETE(f);
search->close();
_CLLDELETE(search);
reader->close();
_CLLDELETE(reader);
_CLLDELETE(q);
//.........这里部分代码省略.........
示例10: testRangeQueryRand
void testRangeQueryRand()
{
// NOTE: uses index build in *super* setUp
IndexReader * pReader = IndexReader::open( index );
IndexSearcher * pSearch = _CLNEW IndexSearcher( pReader );
std::tstring sMinRP = pad(minR);
std::tstring sMaxRP = pad(maxR);
const TCHAR* minRP = sMinRP.c_str();
const TCHAR* maxRP = sMaxRP.c_str();
size_t numDocs = static_cast<size_t>( pReader->numDocs() );
assertEqualsMsg( _T("num of docs"), numDocs, static_cast<size_t>(1+ maxId - minId));
Hits * pResult;
Query * q;
// test extremes, bounded on both ends
q = csrq( _T( "rand" ), minRP, maxRP, true, true );
pResult = pSearch->search( q );
assertEqualsMsg( _T( "find all" ), numDocs, pResult->length());
_CLDELETE( pResult ); _CLDELETE( q );
q = csrq( _T( "rand" ), minRP, maxRP, true, false );
pResult = pSearch->search( q );
assertEqualsMsg( _T( "all but biggest" ), numDocs-1, pResult->length());
_CLDELETE( pResult ); _CLDELETE( q );
q = csrq( _T( "rand" ), minRP, maxRP, false, true );
pResult = pSearch->search( q );
assertEqualsMsg( _T( "all but smallest" ), numDocs-1, pResult->length());
_CLDELETE( pResult ); _CLDELETE( q );
q = csrq( _T( "rand" ), minRP, maxRP, false, false );
pResult = pSearch->search( q );
assertEqualsMsg( _T( "all but extremes" ), numDocs-2, pResult->length());
_CLDELETE( pResult ); _CLDELETE( q );
// unbounded
q = csrq( _T( "rand" ), minRP, NULL, true, false );
pResult = pSearch->search( q );
assertEqualsMsg( _T( "smallest and up" ), numDocs, pResult->length());
_CLDELETE( pResult ); _CLDELETE( q );
q = csrq( _T( "rand" ), NULL, maxRP, false, true );
pResult = pSearch->search( q );
assertEqualsMsg( _T( "biggest and down" ), numDocs, pResult->length());
_CLDELETE( pResult ); _CLDELETE( q );
q = csrq( _T( "rand" ), minRP, NULL, false, false );
pResult = pSearch->search( q );
assertEqualsMsg( _T( "not smallest, but up" ), numDocs-1, pResult->length());
_CLDELETE( pResult ); _CLDELETE( q );
q = csrq( _T( "rand" ), NULL, maxRP, false, false );
pResult = pSearch->search( q );
assertEqualsMsg( _T( "not biggest, but down" ), numDocs-1, pResult->length());
_CLDELETE( pResult ); _CLDELETE( q );
// very small sets
q = csrq( _T( "rand" ), minRP, minRP, false, false );
pResult = pSearch->search( q );
assertEqualsMsg( _T( "min,min,F,F" ), 0, pResult->length());
_CLDELETE( pResult ); _CLDELETE( q );
q = csrq( _T( "rand" ), maxRP, maxRP, false, false );
pResult = pSearch->search( q );
assertEqualsMsg( _T( "max,max,F,F" ), 0, pResult->length());
_CLDELETE( pResult ); _CLDELETE( q );
q = csrq( _T( "rand" ), minRP, minRP, true, true );
pResult = pSearch->search( q );
assertEqualsMsg( _T( "min,min,T,T" ), 1, pResult->length());
_CLDELETE( pResult ); _CLDELETE( q );
q = csrq( _T( "rand" ), NULL, minRP, false, true );
pResult = pSearch->search( q );
assertEqualsMsg( _T( "nul,min,F,T" ), 1, pResult->length());
_CLDELETE( pResult ); _CLDELETE( q );
q = csrq( _T( "rand" ), maxRP, maxRP, true, true );
pResult = pSearch->search( q );
assertEqualsMsg( _T( "max,max,T,T" ), 1, pResult->length());
_CLDELETE( pResult ); _CLDELETE( q );
q = csrq( _T( "rand" ), maxRP, NULL, true, false );
pResult = pSearch->search( q );
assertEqualsMsg( _T( "max,nul,T,T" ), 1, pResult->length());
_CLDELETE( pResult ); _CLDELETE( q );
pSearch->close();
_CLDELETE( pSearch );
pReader->close();
_CLDELETE( pReader );
}
示例11: testRangeQueryId
void testRangeQueryId()
{
// NOTE: uses index build in *super* setUp
IndexReader * pReader = IndexReader::open( index );
IndexSearcher * pSearch = _CLNEW IndexSearcher( pReader );
int32_t medId = ((maxId - minId) / 2);
std::tstring sMinIP = pad(minId);
std::tstring sMaxIP = pad(maxId);
std::tstring sMedIP = pad(medId);
const TCHAR* minIP = sMinIP.c_str();
const TCHAR* maxIP = sMaxIP.c_str();
const TCHAR* medIP = sMedIP.c_str();
size_t numDocs = static_cast<size_t>( pReader->numDocs() );
assertEqualsMsg( _T("num of docs"), numDocs, static_cast<size_t>(1+ maxId - minId));
Hits * pResult;
Query * q;
// test id, bounded on both ends
q = csrq( _T( "id" ), minIP, maxIP, true, true );
pResult = pSearch->search( q );
assertEqualsMsg( _T( "find all" ), numDocs, pResult->length() );
_CLDELETE( pResult ); _CLDELETE( q );
q = csrq( _T( "id" ), minIP, maxIP, true, false );
pResult = pSearch->search( q );
assertEqualsMsg( _T( "all but last" ), numDocs-1, pResult->length());
_CLDELETE( pResult ); _CLDELETE( q );
q = csrq( _T( "id" ), minIP, maxIP, false, true );
pResult = pSearch->search( q );
assertEqualsMsg( _T( "all but first" ), numDocs-1, pResult->length());
_CLDELETE( pResult ); _CLDELETE( q );
q = csrq( _T( "id" ), minIP, maxIP, false,false );
pResult = pSearch->search( q );
assertEqualsMsg( _T( "all but ends" ), numDocs-2, pResult->length());
_CLDELETE( pResult ); _CLDELETE( q );
q = csrq( _T( "id" ), medIP, maxIP, true, true );
pResult = pSearch->search( q );
assertEqualsMsg( _T( "med and up" ), 1+maxId-medId, pResult->length());
_CLDELETE( pResult ); _CLDELETE( q );
q = csrq( _T( "id" ), minIP, medIP, true, true );
pResult = pSearch->search( q );
assertEqualsMsg( _T( "up to med" ), 1+medId-minId, pResult->length());
_CLDELETE( pResult ); _CLDELETE( q );
// unbounded id
q = csrq( _T( "id" ), minIP, NULL, true, false );
pResult = pSearch->search( q );
assertEqualsMsg( _T( "min and up" ), numDocs, pResult->length());
_CLDELETE( pResult ); _CLDELETE( q );
q = csrq( _T( "id" ), NULL, maxIP, false, true );
pResult = pSearch->search( q );
assertEqualsMsg( _T( "max and down" ), numDocs, pResult->length());
_CLDELETE( pResult ); _CLDELETE( q );
q = csrq( _T( "id" ), minIP, NULL, false, false );
pResult = pSearch->search( q );
assertEqualsMsg( _T( "not min, but up" ), numDocs-1, pResult->length());
_CLDELETE( pResult ); _CLDELETE( q );
q = csrq( _T( "id" ), NULL, maxIP, false, false );
pResult = pSearch->search( q );
assertEqualsMsg( _T( "not max, but down" ), numDocs-1, pResult->length());
_CLDELETE( pResult ); _CLDELETE( q );
q = csrq( _T( "id" ), medIP, maxIP, true, false );
pResult = pSearch->search( q );
assertEqualsMsg( _T( "med and up, not max" ), maxId-medId, pResult->length());
_CLDELETE( pResult ); _CLDELETE( q );
q = csrq( _T( "id" ), minIP, medIP, false,true );
pResult = pSearch->search( q );
assertEqualsMsg( _T( "not min, up to med" ), medId-minId, pResult->length());
_CLDELETE( pResult ); _CLDELETE( q );
// very small sets
q = csrq( _T( "id" ), minIP, minIP, false, false );
pResult = pSearch->search( q );
assertEqualsMsg( _T( "min,min,F,F" ), 0, pResult->length());
_CLDELETE( pResult ); _CLDELETE( q );
q = csrq( _T( "id" ), medIP, medIP, false, false );
pResult = pSearch->search( q );
assertEqualsMsg( _T( "med,med,F,F" ), 0, pResult->length());
_CLDELETE( pResult ); _CLDELETE( q );
q = csrq( _T( "id") , maxIP, maxIP, false, false );
pResult = pSearch->search( q );
assertEqualsMsg( _T( "max,max,F,F" ), 0, pResult->length());
//.........这里部分代码省略.........