I am using content search API in Sitecore 9.1.1. However, it is not fetching result if i am using search with any of the template field. The below code fetching result based on template id but when we are trying to fetch result based on any template field then it is not showing any result.
Sharing Code:-
Template :-
Content
ID Single-Line Text
Name Single-Line Text
Version Number
Model :-
public class ModelSearchResult : SearchResultItem
{
[IndexField("id")]
public string ID { get; set; }
[IndexField("name")]
public string Name { get; set; }
[IndexField("version")]
public int Version { get; set; }
}
Code :
ISearchIndex index = ContentSearchManager.GetIndex("sitecore_master_index");
using (IProviderSearchContext context = index.CreateSearchContext())
{
var predicate = PredicateBuilder.True<ModelSearchResult>();
predicate = predicate.And(x => x.TemplateId == ID.Parse("{----}"));
var keywordPredicate = PredicateBuilder.False<ModelSearchResult>();
keywordPredicate = keywordPredicate.Or(x => x.ID == ID.Parse(item.ID));
keywordPredicate = keywordPredicate.Or(x => x.Version == item.Version.Number);
predicate = predicate.And(keywordPredicate);
var queryable = context.GetQueryable<ModelSearchResult>();
queryable = queryable.Where(predicate);
var result = queryable.GetResults();
}