public override Query Rewrite(IndexReader reader) { Query orig = new RegexQuery(term).Rewrite(reader); // RegexQuery (via MultiTermQuery).rewrite always returns a BooleanQuery BooleanQuery bq = (BooleanQuery)orig; BooleanClause[] clauses = bq.GetClauses(); SpanQuery[] sqs = new SpanQuery[clauses.Length]; for (int i = 0; i < clauses.Length; i++) { BooleanClause clause = clauses[i]; // Clauses from RegexQuery.rewrite are always TermQuery's TermQuery tq = (TermQuery)clause.GetQuery(); sqs[i] = new SpanTermQuery(tq.GetTerm()); sqs[i].SetBoost(tq.GetBoost()); } SpanOrQuery query = new SpanOrQuery(sqs); query.SetBoost(orig.GetBoost()); return(query); }
public override Query Rewrite(IndexReader reader) { Query orig = new RegexQuery(term).Rewrite(reader); // RegexQuery (via MultiTermQuery).rewrite always returns a BooleanQuery BooleanQuery bq = (BooleanQuery) orig; BooleanClause[] clauses = bq.GetClauses(); SpanQuery[] sqs = new SpanQuery[clauses.Length]; for (int i = 0; i < clauses.Length; i++) { BooleanClause clause = clauses[i]; // Clauses from RegexQuery.rewrite are always TermQuery's TermQuery tq = (TermQuery) clause.GetQuery(); sqs[i] = new SpanTermQuery(tq.GetTerm()); sqs[i].SetBoost(tq.GetBoost()); } SpanOrQuery query = new SpanOrQuery(sqs); query.SetBoost(orig.GetBoost()); return query; }
private int RegexQueryNrHits(String regex, IRegexCapabilities capability) { RegexQuery query = new RegexQuery(NewTerm(regex)); if (capability != null) query.RegexImplementation = capability; return searcher.Search(query, null, 1000).TotalHits; }
public void TestEquals() { RegexQuery query1 = new RegexQuery(NewTerm("foo.*")); //query1.SetRegexImplementation(new JakartaRegexpCapabilities()); RegexQuery query2 = new RegexQuery(NewTerm("foo.*")); Assert.True(query1.Equals(query2)); }
private int GetRegexQueryHitsCount(string sRegex) { RegexQuery query = new RegexQuery(NewTerm(sRegex)); return _searcher.Search(query, 5).TotalHits; }