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を渡し、「country」フィールドの値を取得する必要があります。しかし、フォルダー内の最後のアイテムを取得したい。どうすればこれを達成できますか?

4

2 に答える 2

4

/sitecore/content/data/MyItem の最後の子項目が必要であることがわかっている場合は、より単純な方法を使用して、parentItem を取得してから最後の子項目を取得することもできます。

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

Children の代わりに Descendants でも同じことができます。

于 2012-09-19T20:09:40.493 に答える
1

検索を使用して実装したい場合は、Lucene.Net.Search.Sort を受け入れるメソッドを持つように IndexSearchContext を拡張する方法を説明するこの回答をご覧ください。その後、Sitecore.Search.BuiltinFields.Created または Sitecore.Search.BuiltinFields.Updated フィールドを渡すことができます (目的に応じて)。

于 2012-09-20T01:42:52.770 に答える