1

我正在执行搜索,我必须获取存储在 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以获取需要获取“国家”字段值的项目。但我想获取文件夹中的最后一项。我应该如何实现这一目标?

4

2 回答 2

4

如果您知道您需要 /sitecore/content/data/MyItem 的最后一个子项,您还可以使用更简单的方法并获取 parentItem,然后检索最后一个子项:

Item myItem = Sitecore.Context.Database.GetItem("/sitecore/content/data/MyItem");
Item lastItem = myItem.Children.Last();

后代而不是孩子也可以这样做。

于 2012-09-19T20:09:40.493 回答
1

如果您确实想使用搜索来实现它,那么看看这个答案,它解释了如何扩展 IndexSearchContext 以拥有接受 Lucene.Net.Search.Sort 的方法。然后,您可以传入 Sitecore.Search.BuiltinFields.Created 或 Sitecore.Search.BuiltinFields.Updated 字段(取决于您所追求的)。

于 2012-09-20T01:42:52.770 回答