Пример #1
0
        /// <summary>
        /// Index a Document
        /// </summary>
        /// <param name="doc"></param>
        /// <param name="deleteold"></param>
        /// <returns></returns>
        public int Index(Document doc, bool deleteold, IHootFilter filter)
        {
            checkloaded();
            filter.InitializeFilter(HootConfOptions.IndexPath);

            _log.Info("Indexing Doc : " + doc.FileName);

            DateTime dt = FastDateTime.Now;

            if (deleteold && doc.DocNumber > -1)
            {
                _deleted.Set(true, doc.DocNumber);
            }

            if (deleteold == true || doc.DocNumber == -1)
            {
                doc.DocNumber = _lastDocNum++;
            }

            // save doc to disk
            string dstr = fastJSON.JSON.ToJSON(doc, new fastJSON.JSONParameters {
                UseExtensions = false
            });

            _docs.Set(doc.FileName.ToLower(), fastJSON.Reflection.UnicodeGetBytes(dstr));

            _log.Info("writing doc to disk (ms) = " + FastDateTime.Now.Subtract(dt).TotalMilliseconds);

            dt = FastDateTime.Now;

            // index doc
            AddtoIndex(doc.DocNumber, filter.FilterText(doc.Text));
            _log.Info("indexing time (ms) = " + FastDateTime.Now.Subtract(dt).TotalMilliseconds);

            return(_lastDocNum);
        }
Пример #2
0
 /// <summary>
 /// Index a Text String using a filter
 /// </summary>
 /// <param name="recordnumber"></param>
 /// <param name="text"></param>
 /// <param name="filter"></param>
 public void Index(int recordnumber, string text, IHootFilter filter)
 {
     checkloaded();
     filter.InitializeFilter(HootConfOptions.IndexPath);
     AddtoIndex(recordnumber, filter.FilterText(text));
 }