public Result Search(string term, int count, int start) { try { term = term.ToLower(); Term htTerm = new Term("hottext", term); Query qq1 = new FuzzyQuery(htTerm); Query qq2 = new TermQuery(htTerm); qq2.SetBoost(10f); Query qq3 = new PrefixQuery(htTerm); qq3.SetBoost(10f); DisjunctionMaxQuery q1 = new DisjunctionMaxQuery(0f); q1.Add(qq1); q1.Add(qq2); q1.Add(qq3); Query q2 = new TermQuery(new Term("text", term)); q2.SetBoost(3f); Query q3 = new TermQuery(new Term("examples", term)); q3.SetBoost(3f); DisjunctionMaxQuery q = new DisjunctionMaxQuery(0f); q.Add(q1); q.Add(q2); q.Add(q3); TopDocs top = SearchInternal(q, count, start); Result r = new Result(term, searcher, top.ScoreDocs); Results.Add(r); return(r); } catch (IOException) { Console.WriteLine("No index in {0}", dir); return(null); } }
public Result FastSearch(string term, int number) { try { term = term.ToLower(); Query q1 = new TermQuery(new Term("hottext", term)); Query q2 = new PrefixQuery(new Term("hottext", term)); q2.SetBoost(0.5f); DisjunctionMaxQuery q = new DisjunctionMaxQuery(0f); q.Add(q1); q.Add(q2); TopDocs top = searcher.Search(q, number); return(new Result(term, searcher, top.ScoreDocs)); } catch (IOException) { Console.WriteLine("No index in {0}", dir); return(null); } }