Lucene++ - a full-featured, c++ search engine
API Documentation


FieldCacheSanityChecker.h
Go to the documentation of this file.
1
2// Copyright (c) 2009-2014 Alan Wright. All rights reserved.
3// Distributable under the terms of either the Apache License (Version 2.0)
4// or the GNU Lesser General Public License.
6
7#ifndef FIELDCACHESANITYCHECKER_H
8#define FIELDCACHESANITYCHECKER_H
9
10#include "LuceneObject.h"
11#include "MapOfSets.h"
12
13namespace Lucene {
14
29public:
32
34
35public:
36 typedef MapOfSets< int32_t, boost::hash<int32_t>, std::equal_to<int32_t>, FieldCacheEntryPtr, luceneHash<FieldCacheEntryPtr>, luceneEquals<FieldCacheEntryPtr> > MapSetIntFieldCacheEntry;
37 typedef MapOfSets< ReaderFieldPtr, luceneHash<ReaderFieldPtr>, luceneEquals<ReaderFieldPtr>, int32_t, boost::hash<int32_t>, std::equal_to<int32_t> > MapSetReaderFieldInt;
38 typedef MapOfSets< ReaderFieldPtr, luceneHash<ReaderFieldPtr>, luceneEquals<ReaderFieldPtr>, ReaderFieldPtr, luceneHash<ReaderFieldPtr>, luceneEquals<ReaderFieldPtr> > MapSetReaderFieldReaderField;
39
44
54
57 EXPECTED
58 };
59
63
68
72
73protected:
78 MapSetReaderFieldInt readerFieldToValIds,
79 SetReaderField valMismatchKeys);
80
86 MapSetReaderFieldInt readerFieldToValIds);
87
91};
92
95class LPPAPI Insanity : public LuceneObject {
96public:
98 virtual ~Insanity();
99
101
102protected:
104 String msg;
106
107public:
110
112 String getMsg();
113
116
119 virtual String toString();
120};
121
122}
123
124#endif
#define LUCENE_CLASS(Name)
Definition: LuceneObject.h:24
Utility template class to handle collections that can be safely copied and shared.
Definition: Collection.h:17
Provides methods for sanity checking that entries in the FieldCache are not wasteful or inconsistent.
Definition: FieldCacheSanityChecker.h:28
static Collection< InsanityPtr > checkSanity(Collection< FieldCacheEntryPtr > cacheEntries)
Quick and dirty convenience method that instantiates an instance with "good defaults" and uses it to ...
InsanityType
An Enumeration of the different types of "insane" behaviour that may be detected in a FieldCache.
Definition: FieldCacheSanityChecker.h:41
@ SUBREADER
Indicates an overlap in cache usage on a given field in sub/super readers.
Definition: FieldCacheSanityChecker.h:43
@ VALUEMISMATCH
Indicates entries have the same reader+fieldname but different cached values. This can happen if diff...
Definition: FieldCacheSanityChecker.h:53
Collection< InsanityPtr > checkSubreaders(MapSetIntFieldCacheEntry valIdToItems, MapSetReaderFieldInt readerFieldToValIds)
Internal helper method used by check that iterates over the keys of readerFieldToValIds and generates...
Collection< InsanityPtr > checkValueMismatch(MapSetIntFieldCacheEntry valIdToItems, MapSetReaderFieldInt readerFieldToValIds, SetReaderField valMismatchKeys)
Internal helper method used by check that iterates over valMismatchKeys and generates a Collection of...
Collection< InsanityPtr > check(Collection< FieldCacheEntryPtr > cacheEntries)
Tests a CacheEntry[] for indication of "insane" cache usage. NOTE: FieldCache CreationPlaceholder obj...
MapOfSets< int32_t, boost::hash< int32_t >, std::equal_to< int32_t >, FieldCacheEntryPtr, luceneHash< FieldCacheEntryPtr >, luceneEquals< FieldCacheEntryPtr > > MapSetIntFieldCacheEntry
Definition: FieldCacheSanityChecker.h:36
Collection< LuceneObjectPtr > getAllDecendentReaderKeys(const LuceneObjectPtr &seed)
Checks if the seed is an IndexReader, and if so will walk the hierarchy of subReaders building up a l...
MapOfSets< ReaderFieldPtr, luceneHash< ReaderFieldPtr >, luceneEquals< ReaderFieldPtr >, ReaderFieldPtr, luceneHash< ReaderFieldPtr >, luceneEquals< ReaderFieldPtr > > MapSetReaderFieldReaderField
Definition: FieldCacheSanityChecker.h:38
static Collection< InsanityPtr > checkSanity(const FieldCachePtr &cache)
Quick and dirty convenience method.
MapOfSets< ReaderFieldPtr, luceneHash< ReaderFieldPtr >, luceneEquals< ReaderFieldPtr >, int32_t, boost::hash< int32_t >, std::equal_to< int32_t > > MapSetReaderFieldInt
Definition: FieldCacheSanityChecker.h:37
Simple container for a collection of related CacheEntry objects that in conjunction with each other r...
Definition: FieldCacheSanityChecker.h:95
FieldCacheSanityChecker::InsanityType type
Definition: FieldCacheSanityChecker.h:103
Collection< FieldCacheEntryPtr > entries
Definition: FieldCacheSanityChecker.h:105
Insanity(FieldCacheSanityChecker::InsanityType type, const String &msg, Collection< FieldCacheEntryPtr > entries)
virtual ~Insanity()
virtual String toString()
Multi-Line representation of this Insanity object, starting with the Type and Msg,...
FieldCacheSanityChecker::InsanityType getType()
Type of insane behavior this object represents.
Collection< FieldCacheEntryPtr > getCacheEntries()
CacheEntry objects which suggest a problem.
String msg
Definition: FieldCacheSanityChecker.h:104
String getMsg()
Description of the insane behaviour.
Base class for all Lucene classes.
Definition: LuceneObject.h:31
Helper class for keeping Lists of Objects associated with keys.
Definition: MapOfSets.h:16
Definition: AbstractAllTermDocs.h:12
boost::shared_ptr< LuceneObject > LuceneObjectPtr
Definition: LuceneTypes.h:539
boost::shared_ptr< FieldCacheEntry > FieldCacheEntryPtr
Definition: LuceneTypes.h:336
boost::shared_ptr< ReaderField > ReaderFieldPtr
Definition: LuceneTypes.h:548
boost::shared_ptr< FieldCache > FieldCachePtr
Definition: LuceneTypes.h:334

clucene.sourceforge.net