caching - Is it ok to simply cache every search using a CachingWrapperFilter? -
caching - Is it ok to simply cache every search using a CachingWrapperFilter? -
using lucene.net 3.0.3 easy wrap every query created in response user's search in cachingwrapperfilter. bad thought because lucene consume more , more memory, or lucene manage memory , release cached items in intelligent way?
should selective in queries wrap in cachingwrapperfilter?
query query = .... querywrapperfilter queryfilter = new querywrapperfilter(query); cachingwrapperfilter cachingfilter = new cachingwrapperfilter(queryfilter); searcher.search(query, cachingfilter, 1); update the lucene.net implementation of cachingwrapperfilter uses mechanism tied garbage collection. implements weakdictionary class keyed using instances of weakreference class. built in .net class wraps object , provides way check if object has been garbage collected or not. suggests me reply question yes. memory management of lucene cache kept under command because tied runtime garbage collector , cache items maintained long still valid.
the keys cache provided indexreader before beingness wrapped in weakreference. indexreader manages objects provides cache keys. when no longer valid disposed , subsequently garbage collected. cache can observe through weakreference , remove item cache.
through weak reference mechanism indexreader , cache can disconnected. indexreader controls validity of cache items disposing key objects, , cache cleans up.
in java lucene, particular cache using weakhashmap means entries cleared automagically 1 time memory pressure level intensifies. if there's counterpart weakhashmap in .net, i'd expect used well.
caching lucene lucene.net
Comments
Post a Comment