Sitecoreコンテンツアイテム内のいくつかの記事を検索して値を与える機能があります。これまでにインデックスを作成し、IndexViewerに表示しています。ただし、関数の戻り値は0です。詳細については、次のリンクを検索しました:http ://sitecoregadgets.blogspot.com/2009/11/working-with-lucene-search-index-in_25.html 。
protected IEnumerable<Item> ShowHomePageNews(int numOfArticles, string stringofCountries)
{
List<Item> items = new List<Item>();
Sitecore.Search.Index indx = SearchManager.GetIndex("newsArticles");
using (IndexSearchContext searchContext = indx.CreateSearchContext())
{
var db = Sitecore.Context.Database;
CombinedQuery query = new CombinedQuery();
QueryBase catQuery = new FieldQuery("countries", stringofCountries); //FieldName, FieldValue.
SearchHits results = searchContext.Search(catQuery); //Searching the content items by fields.
SearchResultCollection result = results.FetchResults(0, numOfArticles);
foreach (SearchResult i in result)
{
items = result
.Where(r => !r.Title.StartsWith("*"))
.Select(r => db.GetItem(new Sitecore.Data.ItemUri(r.Url).ToDataUri()))
.ToList();
//Lucene.Net.Documents.Field url = i.Document.GetField("_url");
//Sitecore.Data.ItemUri itemUri = new Sitecore.Data.ItemUri(url.StringValue());
//Sitecore.Data.Items.Item item = Sitecore.Context.Database.GetItem(itemUri.ToDataUri());
//items.Add(item);
}
}
return items;
}
ここでの結果は0です。私がここで何をしているのですか?
これは、IndexViewerに表示されているもののスナップショットです。
編集:
'catQuery'で"NZ"を渡し、結果を返しています。インデックスビューアに、NZを含むフィールド名=_nameが表示されているためです。私はこの部分を手に入れました。ただし、すべてのフィールドにインデックスを付けたいと思います。IndexViewerに表示されているフィールドは_url、_group、_nameの3つだけです。