Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }
Пример #4
0
        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);
        }