获取Sitecore内容数据中的最后一项

时间:2012-09-19 18:13:29

标签: lucene sitecore sitecore6

我正在执行搜索,我必须获取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”字段值获取项目。但我想得到文件夹中的最后一项。我该怎么做到这一点?

2 个答案:

答案 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字段(取决于您所追求的内容)。