我正在执行搜索,我必须获取sitecore / content / data / MyItem中存储的最后一项的“ID”(字段)。存储在此文件夹中的项目数量为1000+。我知道Lucene搜索效率很高。我执行了Lucene搜索以根据这样的值获取项目:
using (IndexSearchContext searchContext = indx.CreateSearchContext())
{
var db = Sitecore.Context.Database;
CombinedQuery query = new CombinedQuery();
QueryBase catQuery = new FieldQuery("country", guidValueToSearch); //FieldName, FieldValue.
SearchHits results = searchContext.Search(catQuery); //Searching the content items by fields.
SearchResultCollection result = results.FetchResults(0, numOfArticles);
这里我传递了 guidValueToSearch ,因为需要为“country”字段值获取项目。但我想得到文件夹中的最后一项。我该怎么做到这一点?
答案 0 :(得分:4)
如果您知道需要/ sitecore / content / data / MyItem的最后一个子项,您还可以使用更简单的方法获取parentItem,然后检索最后一个子项:
Item myItem = Sitecore.Context.Database.GetItem("/sitecore/content/data/MyItem");
Item lastItem = myItem.Children.Last();
同样可以用后代代替儿童。
答案 1 :(得分:1)
如果您确实想使用搜索实现它,那么请查看this答案,该答案解释了如何扩展IndexSearchContext以使方法接受Lucene.Net.Search.Sort。然后,您可以传入Sitecore.Search.BuiltinFields.Created或Sitecore.Search.BuiltinFields.Updated字段(取决于您所追求的内容)。