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); }