I'm trying to upgrade from lucene 4.10.4 too lucene 5.5.5 and I'm having trouble converting some of my code, here's the function I'm having trouble with.
public Query rewrite(IndexReader reader) throws IOException { WildcardQuery wildQuery = new WildcardQuery(term); wildQuery.setRewriteMethod(MultiTermQuery.SCORING_BOOLEAN_QUERY_REWRITE); Query q = wildQuery.rewrite(reader); if(q instanceof BooleanQuery || q instanceof WildcardQuery || q instanceof PrefixQuery || q instanceof ConstantScoreQuery){ }else{ return new SpanTermQuery(term); } BooleanQuery bq = (BooleanQuery) q; List<BooleanClause> clauses = bq.clauses(); SpanQuery[] sqs = new SpanQuery[clauses.size()]; for (int i = 0; i < clauses.size(); i++) { BooleanClause clause = clauses.get(i); TermQuery tq = (TermQuery) clause.getQuery(); sqs[i] = new SpanTermQuery(tq.getTerm()); sqs[i].setBoost(tq.getBoost()); } SpanOrQuery query = new SpanOrQuery(sqs); query.setBoost(wildQuery.getBoost()); return query; } The problem is the clause.getQuery() doesn't return a TermQuery anymore, it returns a BoostQuery. How would I get it to return a TermQuery? Or how would I get the term from a BoostQuery? Thanks for your help. Thanks, Chris Salem