/// <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> 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)); } }
private void AddFacetQueries(Facets <ESDocument> param, string fieldName, IEnumerable <CategoryFilterValue> values) { foreach (var val in values) { var facetName = String.Format("{0}-{1}", fieldName.ToLower(), val.Id.ToLower()); param.FilterFacets(ff => ff.FacetName(facetName).Filter(f => f.Query(q => q.Bool(bf => bf.Must(bfm => bfm.Custom("{{\"wildcard\" : {{ \"{0}\" : \"{1}\" }}}}", fieldName.ToLower(), val.Outline.ToLower())))))); } }
/// <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))); } } }
/// <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)); } }
private void AddFacetQueries(Facets<ESDocument> param, string fieldName, IEnumerable<CategoryFilterValue> values) { foreach (var val in values) { var facetName = String.Format("{0}-{1}", fieldName.ToLower(), val.Id.ToLower()); param.FilterFacets(ff => ff.FacetName(facetName).Filter(f => f.Query(q => q.Bool(bf => bf.Must(bfm => bfm.Custom("{{\"wildcard\" : {{ \"{0}\" : \"{1}\" }}}}", fieldName.ToLower(), val.Outline.ToLower())))))); } }
/// <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 AddFacetQueries(Facets<ESDocument> param, string fieldName, IEnumerable<RangeFilterValue> values, ISearchCriteria criteria) { if (values == null) return; foreach (var value in values) { var query = ElasticQueryHelper.CreatePriceRangeFilter(criteria, fieldName, value); if (query != null) { 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> 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)); } }