public List <TextSearched> GetHistoryByUserDate(DateTime datePicked) { IndexSearcher searcher = new IndexSearcher(m_HistoryPath); List <TextSearched> list = null; try { list = new List <TextSearched>(); string from = datePicked.ToString("yyyyMMddHHmmss"); string to = datePicked.AddDays(1).ToString("yyyyMMddHHmmss"); QueryParser parserUser = new QueryParser(Constants.VisitUser, new WhitespaceAnalyzer()); QueryParser parserDate = new QueryParser(Constants.DateTicks, new WhitespaceAnalyzer()); Query queryUser = parserUser.Parse(System.Threading.Thread.CurrentPrincipal.Identity.Name); Query queryDate = parserDate.Parse("[" + from + " TO " + to + "]"); BooleanQuery query = new BooleanQuery(); query.Add(queryUser, BooleanClause.Occur.MUST); query.Add(queryDate, BooleanClause.Occur.MUST); Hits hits = searcher.Search(query); for (int i = 0; i < hits.Length(); i++) { TextSearched st = new TextSearched(); Document doc = hits.Doc(i); st.DateTicks = doc.Get(Constants.DateTicks); st.VisitUser = doc.Get(Constants.VisitUser); st.SearchedText = doc.Get(Constants.SearchedText); list.Add(st); } list.Sort(); return(list); } finally { searcher.Close(); } }
public List <TextSearched> SearchHistoryByUserPattern(string pattern) { IndexSearcher searcher = new IndexSearcher(m_HistoryPath); List <TextSearched> list = null; try { list = new List <TextSearched>(); QueryParser parserUser = new QueryParser(Constants.VisitUser, new WhitespaceAnalyzer()); parserUser.SetDefaultOperator(QueryParser.AND_OPERATOR); QueryParser parserPattern = new QueryParser(Constants.SearchedText, new WhitespaceAnalyzer()); parserPattern.SetDefaultOperator(QueryParser.AND_OPERATOR); Query queryUser = parserUser.Parse(System.Threading.Thread.CurrentPrincipal.Identity.Name); Query queryPattern = parserPattern.Parse(pattern); BooleanQuery query = new BooleanQuery(); query.Add(queryUser, BooleanClause.Occur.MUST); query.Add(queryPattern, BooleanClause.Occur.MUST); Hits hits = searcher.Search(query); for (int i = 0; i < hits.Length(); i++) { TextSearched st = new TextSearched(); Document doc = hits.Doc(i); st.DateTicks = doc.Get(Constants.DateTicks); st.VisitUser = doc.Get(Constants.VisitUser); st.SearchedText = doc.Get(Constants.SearchedText); list.Add(st); } list.Sort(); return(list); } finally { searcher.Close(); } }