7 #ifndef FIELDCACHESANITYCHECKER_H
8 #define FIELDCACHESANITYCHECKER_H
79 SetReaderField valMismatchKeys);
#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
Collection< InsanityPtr > checkValueMismatch(MapSetIntFieldCacheEntry valIdToItems, MapSetReaderFieldInt readerFieldToValIds, SetReaderField valMismatchKeys)
Internal helper method used by check that iterates over valMismatchKeys and generates a Collection of...
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...
virtual ~FieldCacheSanityChecker()
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...
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:33
MapOfSets< ReaderFieldPtr, luceneHash< ReaderFieldPtr >, luceneEquals< ReaderFieldPtr >, ReaderFieldPtr, luceneHash< ReaderFieldPtr >, luceneEquals< ReaderFieldPtr > > MapSetReaderFieldReaderField
Definition: FieldCacheSanityChecker.h:38
FieldCacheSanityChecker()
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:100
Collection< FieldCacheEntryPtr > entries
Definition: FieldCacheSanityChecker.h:105
Insanity(FieldCacheSanityChecker::InsanityType type, const String &msg, Collection< FieldCacheEntryPtr > entries)
Collection< FieldCacheEntryPtr > getCacheEntries()
CacheEntry objects which suggest a problem.
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.
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