public override RandomAccessFilter BuildRandomAccessOrFilter(string[] vals, IDictionary <string, string> prop, bool isNot) { RandomAccessFilter filter = null; if (vals.Length > 1) { MultiValueORFacetFilter f = new MultiValueORFacetFilter(this, vals, false); // catch the "not" case later if (!isNot) { AdaptiveFacetFilter af = new AdaptiveFacetFilter(new SimpleDataCacheBuilder(Name, _indexFieldName), f, vals, false); return(af); } else { filter = f; } } else if (vals.Length == 1) { filter = BuildRandomAccessFilter(vals[0], prop); } else { filter = EmptyFilter.Instance; } if (isNot) { filter = new RandomAccessNotFilter(filter); } return(filter); }
public override RandomAccessFilter BuildRandomAccessOrFilter(string[] vals, IDictionary <string, string> prop, bool isNot) { RandomAccessFilter filter = null; if (vals.Length > 1) { RandomAccessFilter f = new FacetOrFilter(this, vals, false); filter = new AdaptiveFacetFilter( new SimpleFacetHandlerFacetDataCacheBuilder(this.GetFacetData <FacetDataCache>, _name, _indexFieldName), f, vals, isNot); } else if (vals.Length == 1) { filter = BuildRandomAccessFilter(vals[0], prop); } else { filter = EmptyFilter.Instance; } if (isNot) { filter = new RandomAccessNotFilter(filter); } return(filter); }
public override RandomAccessFilter BuildRandomAccessFilter(string value, IDictionary <string, string> prop) { MultiValueFacetFilter f = new MultiValueFacetFilter(new MultiDataCacheBuilder(Name, _indexFieldName), value); AdaptiveFacetFilter af = new AdaptiveFacetFilter(new SimpleDataCacheBuilder(Name, _indexFieldName), f, new string[] { value }, false); return(af); }
public override RandomAccessFilter BuildRandomAccessFilter(string value, IDictionary <string, string> prop) { FacetFilter f = new FacetFilter(this, value); AdaptiveFacetFilter af = new AdaptiveFacetFilter( new SimpleFacetHandlerFacetDataCacheBuilder(this.GetFacetData <FacetDataCache>, _name, _indexFieldName), f, new string[] { value }, false); return(af); }