lucene.net - Differences in Umbraco cache structure? -
ok, have spent last 6-8 weeks in weeds of umbraco , have made fixes/improvements our site , environments. have spent lot of time trying correct lower level umbraco caching related issues. reflecting on experience , still don't have clue conceptual differences between following:
- examine indexes
- umbraco.config
- cached xml file in memory (supposedly similar umbraco.config)
- cmscontentxml table
thanks again,
devin
examine indexes index of umbraco content
so when ever create/update/delete content, current content information indexed
this index use searching - under hood, lucene index umbraco backend use these index searching
you can create own index if want
more info checkout, overview & explanation - "examining examine peter gregory"
umbraco.config , cached xml in memory same thing.
the front end umbracohelper api content cache not database - cache umbraco.config
cmscontentxml contains each content's information xml
so xml represent information of node content
so in nutshell represent 3 things:
- examine used searching
- umbraco.config cached data - save round trip db
- cmscontentxml stores full information of content
edit include better clarification robert foster comment , umbracohelper vs examinemanager
for umbraco.config , cmscontentxml table, @robert-foster commented
umbraco.config stores recent version of published content only; in-memory cache cached version of file; , cmscontentxml table stores representation of content , used preview mode - updated every time content item saved. iirc stores representation of other content types
regards umbracohelper vs examinemanager
umbracohelper api it's content memory cache - imo works best when locating direct content, such when know id of content want, call umbraco.typedcontent(id)
but id want in first place? or put way, if want find content's property title contain word "test", use examine search it. because examine lucene wrapper, going fast , efficient
although can traverse tree method such umbraco.typedcontent(id).children
use linq filter result, think done in memory using linq-to-object, not efficient , preferment lucene
so think:
- use examine when searching (locating) content - because can use capability of proper search engine lucene
- once got ids search result, use umbracohelper full publish content representation of content id strong type model , work data.
one thing @robert-foster mention in comment which, did not know umbracohelper provides search method wrapper around examine, use if more familiar api.
lastly, if above statement wrong or not correct, me clarify @ later not wrong, all.
Comments
Post a Comment