public override void Process(ApplyBoostArgs args) { if (args.BoostItem == null || args.BoostItem.TemplateID != BoostTemplate.TemplateID) { return; } var field = args.BoostItem[BoostTemplate.FieldName.BoostField]; if (string.IsNullOrWhiteSpace(field)) { Log.Warn($"Nimble:Boost:SimpleBoost: Missing Expected Property name on item {args.BoostItem.DisplayName}, {args.BoostItem.ID}", this); return; } float amount; if (!float.TryParse(args.BoostItem[BoostTemplate.FieldName.BoostAmount], out amount)) { Log.Warn($"Nimble:Boost:SimpleBoost: Unable to parse boost amount on item {args.BoostItem.DisplayName}, {args.BoostItem.ID}", this); return; } args.Query = args.Query.Where(x => x[field].Contains(args.SearchParameters.Keyword).Boost(amount) ); }
public override void Process(BuildQueryArgs args) { var boosts = args.TabItem?.Boosts; if (boosts == null || boosts.Length <= 0) { return; } var boostArgs = new ApplyBoostArgs { SearchParameters = args.SearchParameters, Query = args.Query }; foreach (var boost in boosts) { boostArgs.BoostItem = boost; CorePipeline.Run(Abstractions.Constants.Pipeline.ApplyBoost, boostArgs); } args.Query = boostArgs.Query; }
public override void Process(ApplyBoostArgs args) { // To apply or not to apply if (args.BoostItem == null || args.BoostItem.TemplateID != DateBoostTemplateId) { return; } var daysField = (Sitecore.Data.Fields.MultilistField)args.BoostItem.Fields[DayChecklistField]; if (daysField == null || daysField.Count <= 0) { return; } int i = 0; var daysAsInt = (from s in daysField.Items where int.TryParse(s, out i) select i).ToArray(); if (daysAsInt.Any()) { var boost = BoostSortDate <NimbleSearchResultItem>(daysAsInt); args.Query = args.Query.Cast <NimbleSearchResultItem>().Where(boost); } }