我目前正在使用 Sitecore,我们在其中创建了一个“创建新内容”部分,它会打开一个弹出窗口,显示 8 个最常用的模板以及使用次数。
问题是,模板数量过多(目前最高超过11k)时,耗时过长。
这是我用来获取 8 个最常用模板的代码:
我从数据库中获取所有项目。
var allItems = db.GetItem("/sitecore/content").Axes.GetDescendants();
然后我得到了最常用的 8 个。
var mostUsedTemplates = allItems.GroupBy(x => x.TemplateID)
.Select(x => new { TemplateID = x.Key, Count = x.Count() })
.OrderByDescending(x => x.Count).Take(8);
我们已经实现了 Lucene,但我真的不知道如何使用它。
我尝试寻找获取所有模板的方法,对它们进行计数,然后找到最常用的 8 个,但我一无所获。
简而言之,我需要计算用于创建内容中的项目的所有模板,并恢复计数最高的 8 个。
任何帮助将不胜感激。谢谢。
对此进行扩展:这是我目前正在制作的配置。我正在尝试包含所有模板,并能够计算它们。
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
<sitecore>
<search>
<configuration>
<indexes>
<index id="usage_template_count" type="Sitecore.Search.Index, Sitecore.Kernel">
<param desc="name">$(id)</param>
<param desc="folder">usage_template_count</param>
<Analyzer ref="search/analyzer" />
<locations hint="list:AddCrawler">
For what I understand, here is what I specify what to index.
From what I read, I know how to include some templates, or excludes others, but no idea how to include ALL.
Also don´t know if I have to set up something in the config to be able to count the results.
</locations>
</index>
</indexes>
</configuration>
</search>
</sitecore>
</configuration>
再次感谢!