Beispiel #1
0
 public IEnumerable <NullResult> Deserialize(SolrDocumentList result)
 {
     if (result == null)
     {
         yield return(null);
     }
     foreach (SolrDocument current in result)
     {
     }
     yield break;
 }
Beispiel #2
0
        private void WriteSolrDocumentList(SolrDocumentList value, SolrBinaryStream stream)
        {
            WriteTag(SOLRDOCLST, stream);
            IList l = new ArrayList(3);

            l.Add(value.NumFound);
            l.Add(value.Start);
            l.Add(value.MaxScore);
            WriteArray(l, stream);
            WriteArray(value, stream);
        }
Beispiel #3
0
 public IEnumerable <T> Deserialize(SolrDocumentList result)
 {
     if (result == null)
     {
         yield return(default(T));
     }
     foreach (SolrDocument current in result)
     {
         T t = Activator.CreateInstance <T>();
         if (base.Highlight != null && base.Highlight.Count > 0 && base.PrimaryKey != null && current.ContainsKey(base.PrimaryKey.KeyName))
         {
             string key = current[base.PrimaryKey.KeyName].ToString();
             IDictionary <string, IList <string> > dictionary = base.Highlight[key];
             foreach (PropertyInfo current2 in this._PropertyList)
             {
                 if (dictionary.ContainsKey(current2.Name))
                 {
                     current2.SetValue(t, dictionary[current2.Name].FirstOrDefault <string>(), null);
                 }
                 else if (dictionary.ContainsKey(current2.Name.ToLower()))
                 {
                     current2.SetValue(t, dictionary[current2.Name.ToLower()].FirstOrDefault <string>(), null);
                 }
                 else if (current.ContainsKey(current2.Name))
                 {
                     current2.SetValue(t, base.ConvertValue(current[current2.Name], current2.PropertyType), null);
                 }
                 else if (current.ContainsKey(current2.Name.ToLower()))
                 {
                     current2.SetValue(t, base.ConvertValue(current[current2.Name.ToLower()], current2.PropertyType), null);
                 }
             }
         }
         else
         {
             foreach (PropertyInfo current2 in this._PropertyList)
             {
                 if (current.ContainsKey(current2.Name))
                 {
                     current2.SetValue(t, base.ConvertValue(current[current2.Name], current2.PropertyType), null);
                 }
                 else if (current.ContainsKey(current2.Name.ToLower()))
                 {
                     current2.SetValue(t, base.ConvertValue(current[current2.Name.ToLower()], current2.PropertyType), null);
                 }
             }
         }
         yield return(t);
     }
     yield break;
 }
Beispiel #4
0
        protected object ReadSolrDocumentList(JsonReader reader)
        {
            if (reader.TokenType != JsonToken.StartObject)
            {
                throw new ArgumentException("requires StartObject token", "reader");
            }
            var nl = ReadNamedList(reader);

            // return the named list of the counts are wrong to be a document list
            if (nl.Count < 3 || nl.Count > 4)
            {
                return(nl);
            }
            var sdl = new SolrDocumentList();

            for (int i = 0; i < nl.Count; i++)
            {
                switch (nl.GetKey(i))
                {
                case "numFound":
                    sdl.NumFound = nl.GetOrDefaultStruct <long>(i);
                    break;

                case "start":
                    sdl.Start = nl.GetOrDefaultStruct <long>(i);
                    break;

                case "maxScore":
                    sdl.MaxScore = nl.GetOrDefault <object>(i) as float?;
                    break;

                case "docs":
                    var docs = nl.GetOrDefault <IList>(i);
                    if (!docs.IsNullOrEmpty())
                    {
                        for (int j = 0; j < docs.Count; j++)
                        {
                            sdl.Add(new SolrDocument(docs[j] as INamedList));
                        }
                    }
                    break;

                default:
                    //Unexpected name, returning namedlist as fallback
                    return(nl);
                }
            }
            return(sdl);
        }
Beispiel #5
0
        private SolrDocumentList ReadSolrDocumentList(SolrBinaryStream stream)
        {
            var sdl      = new SolrDocumentList();
            var metadata = (IList)ReadVal(stream);

            sdl.NumFound = (long)metadata[0];
            sdl.Start    = (long)metadata[1];
            sdl.MaxScore = (float?)metadata[2];
            var arr = ReadVal(stream) as ArrayList;

            if (arr != null)
            {
                sdl.AddRange(arr.Cast <SolrDocument>());
            }
            return(sdl);
        }
Beispiel #6
0
 public IEnumerable <Example> Deserialize(SolrDocumentList result)
 {
     foreach (SolrDocument doc in result)
     {
         yield return(new Example()
         {
             Id = doc["id"].ToString(),
             Name = doc["name"].ToString(),
             Features = (string[])((ArrayList)doc["features"]).ToArray(typeof(string)),
             Price = (float)doc["price"],
             Popularity = (int)doc["popularity"],
             InStock = (bool)doc["inStock"],
             IncubationDate = (DateTime)doc["incubationdate_dt"]
         });
     }
 }
 public IEnumerable <Product> Deserialize(SolrDocumentList result)
 {
     foreach (SolrDocument doc in result)
     {
         yield return(new Product()
         {
             Id = Convert.ToInt32(doc["id"]),
             ProductName = doc["ProductName"].ToString(),
             ProductTypeId = Convert.ToInt32(doc["ProductTypeId"]),
             ProductAttributeId = Convert.ToInt32(doc["ProductAttributeId"]),
             Rank = Convert.ToInt32(doc["Rank"]),
             EffectDate = Convert.ToDateTime(doc["EffectDate"]),
             ExpireDate = Convert.ToDateTime(doc["ExpireDate"]),
             Coords = (string[])((ArrayList)doc["Coords"]).ToArray(typeof(string)),
             ProductDescription = doc["ProductDescription"].ToString(),
             TourSpotName = (string[])((ArrayList)doc["TourSpotName"]).ToArray(typeof(string)),
             SalesPrice = Convert.ToDouble(doc["SalesPrice"])
         });
     }
 }
Beispiel #8
0
 public void WriteSolrDocumentList(SolrDocumentList docs)
 {
     WriteTag(SOLRDOCLST);
     IList l = new ArrayList(3);
     l.Add(docs.NumFound);
     l.Add(docs.Start);
     l.Add(docs.MaxScore);
     WriteArray(l);
     WriteArray(docs);
 }
Beispiel #9
0
        public SolrDocumentList ReadSolrDocumentList(FastInputStream dis)
        {
            SolrDocumentList solrDocs = new SolrDocumentList();
            IList list = (IList)ReadVal(dis);
            solrDocs.NumFound = (long)list[0];
            solrDocs.Start = (long)list[1];
            solrDocs.MaxScore = (float?)list[2];

            ArrayList l = (ArrayList)ReadVal(dis);
            foreach (SolrDocument doc in l)
            {
                solrDocs.Add(doc);
            }
            return solrDocs;
        }
Beispiel #10
0
        protected object ReadSolrDocumentList(JsonReader reader)
        {
            if (reader.TokenType != JsonToken.StartObject)
                throw new ArgumentException("requires StartObject token", "reader");
            var nl = ReadNamedList(reader);
            // return the named list of the counts are wrong to be a document list
            if (nl.Count < 3 || nl.Count > 4)
                return nl;
            var sdl = new SolrDocumentList();
            for (int i = 0; i < nl.Count; i++)
            {
                switch (nl.GetKey(i))
                {
                    case "numFound":
                        sdl.NumFound = nl.GetOrDefaultStruct<long>(i);
                        break;

                    case "start":
                        sdl.Start = nl.GetOrDefaultStruct<long>(i);
                        break;

                    case "maxScore":
                        sdl.MaxScore = nl.GetOrDefault<object>(i) as float?;
                        break;

                    case "docs":
                        var docs = nl.GetOrDefault<IList>(i);
                        if (!docs.IsNullOrEmpty())
                        {
                            for (int j = 0; j < docs.Count; j++)
                                sdl.Add(new SolrDocument(docs[j] as INamedList));
                        }
                        break;

                    default:
                        //Unexpected name, returning namedlist as fallback
                        return nl;
                }
            }
            return sdl;
        }
Beispiel #11
0
 private void WriteSolrDocumentList(SolrDocumentList value, SolrBinaryStream stream)
 {
     WriteTag(SOLRDOCLST, stream);
     IList l = new ArrayList(3);
     l.Add(value.NumFound);
     l.Add(value.Start);
     l.Add(value.MaxScore);
     WriteArray(l, stream);
     WriteArray(value, stream);
 }
Beispiel #12
0
 private SolrDocumentList ReadSolrDocumentList(SolrBinaryStream stream)
 {
     var sdl = new SolrDocumentList();
     var metadata = (IList)ReadVal(stream);
     sdl.NumFound = (long)metadata[0];
     sdl.Start = (long)metadata[1];
     sdl.MaxScore = (float?)metadata[2];
     var arr = ReadVal(stream) as ArrayList;
     if (arr != null)
         sdl.AddRange(arr.Cast<SolrDocument>());
     return sdl;
 }
Beispiel #13
0
 public IEnumerable <DataRow> Deserialize(SolrDocumentList result)
 {
     if (result == null)
     {
         yield return(null);
     }
     string[] source = this._Fields.ToLower().Split(new char[]
     {
         ','
     }, StringSplitOptions.RemoveEmptyEntries);
     foreach (SolrDocument current in result)
     {
         DataRow dataRow = base.CreateDataTableNewRow();
         if (base.Highlight != null && base.Highlight.Count > 0 && base.PrimaryKey != null && current.ContainsKey(base.PrimaryKey.KeyName))
         {
             string key = current[base.PrimaryKey.KeyName].ToString();
             IDictionary <string, IList <string> > dictionary = base.Highlight[key];
             foreach (PropertyInfo current2 in this._PropertyList)
             {
                 if (dictionary.ContainsKey(current2.Name))
                 {
                     dataRow[current2.Name] = dictionary[current2.Name].FirstOrDefault <string>();
                 }
                 else if (dictionary.ContainsKey(current2.Name.ToLower()))
                 {
                     dataRow[current2.Name] = dictionary[current2.Name.ToLower()].FirstOrDefault <string>();
                 }
                 else if (current.ContainsKey(current2.Name))
                 {
                     dataRow[current2.Name] = base.ConvertValue(current[current2.Name], current2.PropertyType);
                 }
                 else if (current.ContainsKey(current2.Name.ToLower()))
                 {
                     dataRow[current2.Name] = base.ConvertValue(current[current2.Name.ToLower()], current2.PropertyType);
                 }
             }
             if (!string.IsNullOrWhiteSpace(this._Fields))
             {
                 if (source.Contains("score"))
                 {
                     if (current.ContainsKey("score"))
                     {
                         dataRow["score"] = current["score"];
                     }
                 }
                 if (source.Contains("_version_"))
                 {
                     if (current.ContainsKey("_version_"))
                     {
                         dataRow["_version_"] = current["_version_"];
                     }
                 }
             }
         }
         else
         {
             foreach (PropertyInfo current2 in this._PropertyList)
             {
                 if (current.ContainsKey(current2.Name))
                 {
                     dataRow[current2.Name] = base.ConvertValue(current[current2.Name], current2.PropertyType);
                 }
                 else if (current.ContainsKey(current2.Name.ToLower()))
                 {
                     dataRow[current2.Name] = base.ConvertValue(current[current2.Name.ToLower()], current2.PropertyType);
                 }
             }
             if (!string.IsNullOrWhiteSpace(this._Fields))
             {
                 if (source.Contains("score"))
                 {
                     if (current.ContainsKey("score"))
                     {
                         dataRow["score"] = current["score"];
                     }
                 }
                 if (source.Contains("_version_"))
                 {
                     if (current.ContainsKey("_version_"))
                     {
                         dataRow["_version_"] = current["_version_"];
                     }
                 }
             }
         }
         yield return(dataRow);
     }
     yield break;
 }