好的,所以我刚刚花了6-8周的时间在Umbraco的杂草上,并对我们的网站和环境做了一些修复/改进。我花了很多时间试图纠正较低级别的Umbraco缓存相关问题。现在反映我的经验,我仍然没有线索的概念区别如下之间是什么:Umbraco缓存结构的差异?
- 检查指标
- umbraco.config内存
- 缓存的xml文件(据说类似于一把umbraco的.config)
- CMSContentXML表
再次感谢,
德文
好的,所以我刚刚花了6-8周的时间在Umbraco的杂草上,并对我们的网站和环境做了一些修复/改进。我花了很多时间试图纠正较低级别的Umbraco缓存相关问题。现在反映我的经验,我仍然没有线索的概念区别如下之间是什么:Umbraco缓存结构的差异?
再次感谢,
德文
检查指标是一把umbraco内容索引
所以,当你永远创建/更新/删除的内容,当前内容信息将被收录
该指数是用于搜索 - 引擎盖下,这是,如果你想
更多信息Lucene索引 一把umbraco后端使用这些索引搜索
您可以创建自己的索引结帐,Overview & Explanation - "Examining Examine by Peter Gregory"
umbraco.config和内存中的缓存xml是真的一样的东西。
前端UmbracoHelper API从缓存中获取内容不是数据库 - 缓存从
CMSContentXML包含每个内容的信息作为XML
所以基本上这个XML代表所有的umbraco.config节点内容
那么概括的信息,他们代表真正的三件事:
编辑的全部信息,包括罗伯特·福斯特评论更好地澄清和UmbracoHelper vs ExamineManager
对于umbraco.config和CMSContentXML表,@ robert-foster评论了
umbraco。config仅存储所有已发布内容的最新版本;内存中缓存是该文件的缓存版本; cmscontentxml表存储所有内容的表示,主要用于预览模式 - 每次保存内容时都会更新。 IIRC它还存储其他内容类型的表示
问候UmbracoHelper VS ExamineManager
UmbracoHelper API主要是得到它的从内存缓存内容 - IMO它定位直接的内容时,例如当效果最好你知道你想要的内容的id,你只需拨打Umbraco.TypedContent(id)
但是你在哪里得到你想要的id呢?或者换句话说,如果你想找到包含单词“Test”的所有内容的属性Title,那么你将使用Examine来搜索它。因为Examine实际上是lucene包装,所以它会变得快速和高效
虽然你可以通过诸如Umbraco.TypedContent(id).Children
之类的方法遍历树,然后使用linq来过滤结果,但是我认为这是在内存中使用linq-to -object,所以它是效率不高和升迁为Lucene的
所以,我个人认为:当你正在寻找(定位)内容
一件事@罗伯特·福斯特提到其中,我不知道该评论是UmbracoHelper提供的搜索方法是绕检查的包装,所以使用,如果有更多熟悉的API。
最后,如果以上任何一条语句错误或不正确,请帮我澄清一下,以便以后任何人看到它都不会错,谢谢大家。
我可以推动和编辑/“更多信息”以获得更好的答案。 为UmbracoDB中的表格如何构建到存储在CMSContentXML中的XML中添加第4个项目符号。 UmbracoHelper与ExamineManager的更详细的解释,因为他们都'搜索'数据。 –
@Alan你几乎没有错 - umbraco.config只存储所有已发布内容的最新版本;内存中缓存是该文件的缓存版本; cmscontentxml表存储所有内容的表示,主要用于预览模式 - 每次保存内容时都会更新。 IIRC还存储其他内容类型的表示。 –
@Devin认为UmbracoHelper是查询已发布缓存的存储库接口 - 它能够通过id或位置检索节点并遍历树;它的搜索方法实际上是一个方便的方法,包裹在检查。如果你想做更复杂的搜索,你可能会想直接使用检查;特别是如果您使用自定义索引。 –