검색 할 문자열과 검색 결과에서 가져올 기사의 수를 전달하는 함수를 작성했습니다. SearchResultCollection의 항목 필터링
그러나 검색이 다시 Sitecore 컨텐츠 항목에서 올 때, 나는 그들의 제목 필드의 시작에 별표 (*)이있는 항목을 표시 싶지 않다. 다음은 함수 이름입니다protected IEnumerable<Item> ShowHomePageNews(int numOfArticles, string stringofCountries)
{
List<Item> items = new List<Item>();
Sitecore.Search.Index indx = SearchManager.GetIndex("my_index_name");
using (IndexSearchContext searchContext = indx.CreateSearchContext())
{
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)
{
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;
}
그리고 내 PageLoad에이 함수를 호출 오전 :
rptHomePageNews.DataSource = ShowHomePageNews (4, "USA");를
<asp:Panel ID="HomePageNews" runat="server">
<asp:Repeater ID="rptHomePageNews" runat="server">
<ItemTemplate>
<li>
<%--<sc:FieldRenderer ID="FieldRenderer1" FieldName="Date" runat="server" Item="<%# Container.DataItem as Sitecore.Data.Items.Item %>" />--%>
<a href="<%# Sitecore.Links.LinkManager.GetItemUrl(Container.DataItem as Sitecore.Data.Items.Item) %>">
<sc:FieldRenderer ID="FieldRenderer2" FieldName="Title" runat="server" Item="<%# Container.DataItem as Sitecore.Data.Items.Item %>" />
</a>
</li>
</ItemTemplate>
</asp:Repeater>
내가 내 ShowHomePageNews 기능에 어떤 변화를해야한다 :
는 그리고 이건 내 마크 업입니까?
검색에서 필터링을 수행 할 의향이, 또는 당신이 후 검색을 사용하고자 : 내가 컴파일하거나 실행하지 않은 참고, 나는이 코드를 기존의 오프 의사가 코딩 해요 LINQ 쿼리 필터링? –
예! 나는 그것을 기꺼이한다. –
내 'result'변수는 여기에 0입니다. 내가 뭘 잘못하고 있니? –