/// <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> private void AddFacetQueries(Facets <ESDocument> param, string fieldName, IEnumerable <RangeFilterValue> values, ISearchCriteria criteria) { if (values == null) { return; } var ffilter = new Filter <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 filter = new FacetFilter <ESDocument>(); filter.Range(r => r.IncludeLower(false).IncludeUpper().From(value.Lower).To(value.Upper)); filter.And(b => ffilter); param.FilterFacets(ff => ff.FacetName(String.Format("{0}-{1}", fieldName, value.Id)).Filter(f => filter)); } }
/// <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> private void AddFacetQueries(Facets<ESDocument> param, string fieldName, IEnumerable<RangeFilterValue> values, ISearchCriteria criteria) { if (values == null) return; var ffilter = new Filter<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 filter = new FacetFilter<ESDocument>(); filter.Range(r => r.IncludeLower(false).IncludeUpper().From(value.Lower).To(value.Upper)); filter.And(b => ffilter); param.FilterFacets(ff => ff.FacetName(String.Format("{0}-{1}", fieldName, value.Id)).Filter(f => filter)); } }
/// <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> private void AddFacetQueries(Facets<ESDocument> param, string fieldName, IEnumerable<RangeFilterValue> values) { if (values == null) return; foreach (var value in values) { var filter = new FacetFilter<ESDocument>(); filter.Range(r => r.IncludeLower(false).IncludeUpper().From(value.Lower).To(value.Upper)); param.FilterFacets(ff => ff.FacetName(String.Format("{0}-{1}", fieldName, value.Id)).Filter(f => filter)); } }