/// <summary> /// Adds the facet queries. /// </summary> /// <param name="param">The param.</param> /// <param name="fieldName">Name of the field.</param> /// <param name="values">The values.</param> /// <param name="criteria">The criteria.</param> private void AddFacetPriceQueries(Facets <ESDocument> param, string fieldName, IEnumerable <RangeFilterValue> values, ISearchCriteria criteria) { if (values == null) { return; } var ffilter = new MustFilter <ESDocument>(); foreach (var f in criteria.CurrentFilters) { if (!f.Key.Equals(fieldName)) { var q = ElasticQueryHelper.CreateQuery(criteria, f); ffilter.Bool(ff => q); } } foreach (var value in values) { var query = ElasticQueryHelper.CreatePriceRangeFilter(criteria, fieldName, value); if (query != null) { query.Must(b => ffilter); param.FilterFacets( ff => ff.FacetName(String.Format("{0}-{1}", fieldName, value.Id)).Filter(f => f.Bool(b => query))); } } }
/// <summary> /// Adds the facet queries. /// </summary> /// <param name="param">The param.</param> /// <param name="fieldName">Name of the field.</param> /// <param name="values">The values.</param> /// <param name="criteria">The criteria.</param> private void AddFacetPriceQueries(Facets<ESDocument> param, string fieldName, IEnumerable<RangeFilterValue> values, ISearchCriteria criteria) { if (values == null) return; var ffilter = new MustFilter<ESDocument>(); foreach (var f in criteria.CurrentFilters) { if (!f.Key.Equals(fieldName)) { var q = ElasticQueryHelper.CreateQuery(criteria, f); ffilter.Bool(ff => q); } } foreach (var value in values) { var query = ElasticQueryHelper.CreatePriceRangeFilter(criteria, fieldName, value); query.Must(b =>ffilter); if (query != null) { param.FilterFacets( ff => ff.FacetName(String.Format("{0}-{1}", fieldName, value.Id)).Filter(f => f.Bool(b => query))); } } }