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