示例#1
0
 public void WriteNamedList(NamedList nl)
 {
     WriteTag(nl is SimpleOrderedMap ? ORDERED_MAP : NAMED_LST, nl.Count);
     for (int i = 0; i < nl.Count; i++)
     {
         String name = nl.GetName(i);
         WriteExternString(name);
         Object val = nl.GetVal(i);
         WriteVal(val);
     }
 }
示例#2
0
        public SolrDocument ReadSolrDocument(FastInputStream dis)
        {
            NamedList    nl  = (NamedList)ReadVal(dis);
            SolrDocument doc = new SolrDocument();

            for (int i = 0; i < nl.Count; i++)
            {
                String name = nl.GetName(i);
                Object val  = nl.GetVal(i);
                doc.SetField(name, val);
            }
            return(doc);
        }
示例#3
0
        private IEnumerable <GroupResultInfo <T> > QueryGroupResultsParseT(string fields, NamedList namedList, string highlightFields, out int matchesCount)
        {
            ObjectDeserializeT <T> objectDeserializeT = new ObjectDeserializeT <T>(this._TableName, fields);

            matchesCount = 0;
            ISolrResponseParser <NamedList, IList <GroupQueryResults <T> > > solrResponseParser = new BinaryGroupQueryResultsParser <T>(objectDeserializeT);

            if (!string.IsNullOrWhiteSpace(highlightFields))
            {
                BinaryHighlightingParser binaryHighlightingParser = new BinaryHighlightingParser();
                IDictionary <string, IDictionary <string, IList <string> > > highlight = binaryHighlightingParser.Parse(namedList);
                objectDeserializeT.Highlight = highlight;
            }
            List <GroupResultInfo <T> >        list  = new List <GroupResultInfo <T> >();
            IList <GroupQueryResults <T> >     list2 = solrResponseParser.Parse(namedList);
            IEnumerable <GroupResultInfo <T> > result;

            if (list2 == null || list2.Count == 0)
            {
                result = list;
            }
            else
            {
                NamedList namedList2 = (NamedList)namedList.Get("grouped");
                int       num        = 0;
                foreach (GroupQueryResults <T> current in list2)
                {
                    matchesCount = current.Matches;
                    NamedList namedList3 = (NamedList)namedList2.GetVal(num);
                    object    obj        = namedList3.Get("ngroups");
                    if (obj != null)
                    {
                        matchesCount = Convert.ToInt32(obj);
                    }
                    foreach (GroupQueryResult <T> current2 in current.Groups)
                    {
                        list.Add(new GroupResultInfo <T>
                        {
                            Data         = current2.QueryResults,
                            RecordCount  = current2.QueryResults.NumFound,
                            MatchesCount = current.Matches,
                            GroupValue   = current2.GroupValue
                        });
                    }
                    num++;
                }
                result = list;
            }
            return(result);
        }
示例#4
0
 public void WriteNamedList(NamedList nl)
 {
     WriteTag(nl is SimpleOrderedMap ? ORDERED_MAP : NAMED_LST, nl.Count);
     for (int i = 0; i < nl.Count; i++)
     {
         String name = nl.GetName(i);
         WriteExternString(name);
         Object val = nl.GetVal(i);
         WriteVal(val);
     }
 }