public override RandomAccessFilter BuildRandomAccessFilter(string value, IDictionary<string, string> prop)
 {
     MultiValueFacetFilter f = new MultiValueFacetFilter(new MultiDataCacheBuilder(Name, _indexFieldName), value);
     return f;
 }
 public RandomRandomAccessDocIdSet(MultiValueFacetFilter parent)
 {
     this.parent = parent;
 }
        public override RandomAccessFilter BuildRandomAccessOrFilter(string[] vals, Properties prop, bool isNot)
        {
            RandomAccessFilter filter = null;

            int[] indexes = FacetDataCache.Convert(_dataCache, vals);
            if (indexes.Length > 1)
            {
                filter = new MultiValueORFacetFilter(_dataCache, indexes);
            }
            else if (indexes.Length == 1)
            {
                filter = new MultiValueFacetFilter(_dataCache, indexes[0]);
            }
            else
            {
                filter = EmptyFilter.GetInstance();
            }

            if (isNot)
            {
                filter = new RandomAccessNotFilter(filter);
            }
            return filter;
        }