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