public override RandomAccessFilter BuildRandomAccessFilter(string value, IDictionary <string, string> selectionProperty)
        {
            List <RandomAccessFilter> filterList = new List <RandomAccessFilter>();

            string[] vals = value.Split(new string[] { m_sep }, StringSplitOptions.RemoveEmptyEntries);
            for (int i = 0; i < vals.Length; ++i)
            {
                SimpleFacetHandler handler = m_facetHandlers[i];
                BrowseSelection    sel     = new BrowseSelection(handler.Name);
                sel.AddValue(vals[i]);
                filterList.Add(handler.BuildFilter(sel));
            }
            return(new RandomAccessAndFilter(filterList));
        }
 public override FacetDataNone Load(BoboSegmentReader reader)
 {
     m_facetHandlers   = new List <SimpleFacetHandler>(m_fieldsSet.Count);
     m_facetHandlerMap = new Dictionary <string, SimpleFacetHandler>(m_fieldsSet.Count);
     foreach (string name in m_fieldsSet)
     {
         IFacetHandler handler = reader.GetFacetHandler(name);
         if (handler == null || !(handler is SimpleFacetHandler))
         {
             throw new InvalidOperationException("only simple facet handlers supported");
         }
         SimpleFacetHandler sfh = (SimpleFacetHandler)handler;
         m_facetHandlers.Add(sfh);
         m_facetHandlerMap.Add(name, sfh);
     }
     return(FacetDataNone.Instance);
 }