public virtual Search.Query GetSpanNearQuery( IndexReader reader, string fieldName, float boost, BasicQueryFactory qf) { SpanQuery[] spanClauses = new SpanQuery[NrSubQueries]; var sqi = GetSubQueriesEnumerator(); int qi = 0; while (sqi.MoveNext()) { SpanNearClauseFactory sncf = new SpanNearClauseFactory(reader, fieldName, qf); ((IDistanceSubQuery)sqi.Current).AddSpanQueries(sncf); if (sncf.Count == 0) { /* distance operator requires all sub queries */ while (sqi.MoveNext()) { /* produce evt. error messages but ignore results */ ((IDistanceSubQuery)sqi.Current).AddSpanQueries(sncf); sncf.Clear(); } return(SrndQuery.TheEmptyLcnQuery); } spanClauses[qi] = sncf.MakeSpanClause(); qi++; } SpanNearQuery r = new SpanNearQuery(spanClauses, OpDistance - 1, QueriesOrdered); r.Boost = boost; return(r); }
public SpanNearClauseFactory(IndexReader reader, string fieldName, BasicQueryFactory qf) { this.reader = reader; this.fieldName = fieldName; this.weightBySpanQuery = new JCG.Dictionary <SpanQuery, float>(); this.qf = qf; }
public SimpleTermRewriteQuery( SimpleTerm srndQuery, string fieldName, BasicQueryFactory qf) : base(srndQuery, fieldName, qf) { }
public RewriteQuery( SQ srndQuery, string fieldName, BasicQueryFactory qf) { this.m_srndQuery = srndQuery; this.m_fieldName = fieldName; this.m_qf = qf; }
public virtual Search.Query MakeLuceneQueryField(string fieldName, BasicQueryFactory qf) { Search.Query q = MakeLuceneQueryFieldNoBoost(fieldName, qf); if (IsWeighted) { q.Boost = (Weight * q.Boost); /* weight may be at any level in a SrndQuery */ } return(q); }
/// <summary> /// Two BasicQueryFactory's are equal when they generate /// the same types of basic queries, or both cannot generate queries anymore. /// </summary> public override bool Equals(object obj) { if (!(obj is BasicQueryFactory)) { return(false); } BasicQueryFactory other = (BasicQueryFactory)obj; return(AtMax == other.AtMax); }
public virtual bool IsOperatorInfix => operatorInfix; /* else prefix operator */ public virtual IList <Search.Query> MakeLuceneSubQueriesField(string fn, BasicQueryFactory qf) { List <Search.Query> luceneSubQueries = new List <Search.Query>(); IEnumerator <SrndQuery> sqi = GetSubQueriesEnumerator(); while (sqi.MoveNext()) { luceneSubQueries.Add((sqi.Current).MakeLuceneQueryField(fn, qf)); } return(luceneSubQueries); }
public override Search.Query MakeLuceneQueryFieldNoBoost(string fieldName, BasicQueryFactory qf) { var luceneSubQueries = MakeLuceneSubQueriesField(fieldName, qf); BooleanQuery bq = new BooleanQuery(); bq.Add(luceneSubQueries.FirstOrDefault(), Occur.MUST); SrndBooleanQuery.AddQueriesToBoolean(bq, // FIXME: do not allow weights on prohibited subqueries. //luceneSubQueries.subList(1, luceneSubQueries.size()), luceneSubQueries.Skip(1).ToList(), // later subqueries: not required, prohibited Occur.MUST_NOT); return(bq); }
public override Search.Query MakeLuceneQueryFieldNoBoost(string fieldName, BasicQueryFactory qf) { var luceneSubQueries = MakeLuceneSubQueriesField(fieldName, qf); BooleanQuery bq = new BooleanQuery { { luceneSubQueries.Count > 0 ? luceneSubQueries[0] : null, Occur.MUST } }; SrndBooleanQuery.AddQueriesToBoolean(bq, // FIXME: do not allow weights on prohibited subqueries. luceneSubQueries.GetView(1, luceneSubQueries.Count - 1), // LUCENENET: Converted end index to length // later subqueries: not required, prohibited Occur.MUST_NOT); return(bq); }
public virtual Search.Query MakeLuceneQueryNoBoost(BasicQueryFactory qf) { if (fieldNames.Count == 1) { /* single field name: no new queries needed */ return(q.MakeLuceneQueryFieldNoBoost(fieldNames.FirstOrDefault(), qf)); } else { /* OR query over the fields */ List <SrndQuery> queries = new List <SrndQuery>(); foreach (var fieldName in fieldNames) { var qc = (SrndQuery)q.Clone(); queries.Add(new FieldsQuery(qc, fieldName, fieldOp)); } OrQuery oq = new OrQuery(queries, true /* infix OR for field names */, orOperatorName); // System.out.println(getClass().toString() + ", fields expanded: " + oq.toString()); /* needs testing */ return(oq.MakeLuceneQueryField(null, qf)); } }
public override Search.Query MakeLuceneQueryFieldNoBoost(string fieldName, BasicQueryFactory qf) { var luceneSubQueries = MakeLuceneSubQueriesField(fieldName, qf); BooleanQuery bq = new BooleanQuery { { luceneSubQueries.Count > 0 ? luceneSubQueries[0] : null, Occur.MUST } }; // LUCENENET: SubList() is slow, so we do an array copy operation instead var luceneSubQueriesArray = new Search.Query[luceneSubQueries.Count - 1]; for (int i = 1, j = 0; i < luceneSubQueries.Count; i++, j++) { luceneSubQueriesArray[j] = luceneSubQueries[i]; } SrndBooleanQuery.AddQueriesToBoolean(bq, // FIXME: do not allow weights on prohibited subqueries. luceneSubQueriesArray, // later subqueries: not required, prohibited Occur.MUST_NOT); return(bq); }
public override Search.Query MakeLuceneQueryFieldNoBoost(string fieldName, BasicQueryFactory qf) { return(MakeLuceneQueryNoBoost(qf)); /* use this.fieldNames instead of fieldName */ }
public override Search.Query MakeLuceneQueryFieldNoBoost(string fieldName, BasicQueryFactory qf) { return(new SimpleTermRewriteQuery(this, fieldName, qf)); }
public abstract Search.Query MakeLuceneQueryFieldNoBoost(string fieldName, BasicQueryFactory qf);
public override Search.Query MakeLuceneQueryFieldNoBoost(string fieldName, BasicQueryFactory qf) { return(SrndBooleanQuery.MakeBooleanQuery( /* subqueries can be individually boosted */ MakeLuceneSubQueriesField(fieldName, qf), Occur.MUST)); }
public SimpleTermRewriteMatchingTermVisitor(IList <Search.Query> luceneSubQueries, BasicQueryFactory qf) { this.luceneSubQueries = luceneSubQueries; this.qf = qf; }