Esempio n. 1
0
		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;
			}
		}
Esempio n. 2
0
	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;
		}
	}