Пример #1
0
        public SolrInputDocument ReadSolrInputDocument(FastInputStream dis)
        {
            int               sz       = ReadVInt(dis);
            float?            docBoost = (float?)ReadVal(dis);
            SolrInputDocument sdoc     = new SolrInputDocument();

            sdoc.Boost = docBoost;
            for (int i = 0; i < sz; i++)
            {
                float  boost = 1.0f;
                String fieldName;
                Object boostOrFieldName = ReadVal(dis);
                if (boostOrFieldName is float)
                {
                    boost     = (float)boostOrFieldName;
                    fieldName = (String)ReadVal(dis);
                }
                else
                {
                    fieldName = (String)boostOrFieldName;
                }
                Object fieldVal = ReadVal(dis);
                sdoc[fieldName] = new SolrInputField(fieldName, fieldVal, boost);
            }
            return(sdoc);
        }
Пример #2
0
 public void WriteSolrInputDocument(SolrInputDocument sdoc)
 {
     WriteTag(SOLRINPUTDOC, sdoc.Count);
     WriteFloat(sdoc.Boost.Value);
     foreach (SolrInputField inputField in sdoc.Values)
     {
         if (inputField.Boost != 1.0f)
         {
             WriteFloat(inputField.Boost.Value);
         }
         WriteExternString(inputField.Name);
         WriteVal(inputField.Value);
     }
 }