You could call the .getTermsEnum() on the query itself, and then step through the terms and save them?
But this method is protected ... so you could make a subclass w/ a new method that calls it and returns it to you. Mike McCandless http://blog.mikemccandless.com On Mon, Mar 11, 2013 at 6:41 AM, Carsten Schnober <schno...@ids-mannheim.de> wrote: > Hi, > I'm trying to get the terms that match a certain RegexpQuery. My (naive) > approach: > > 1. Create a RegexpQuery from the queryString (e.g. "abc.*"): > Query q = new RegexpQuery(new Term("text", queryString)); > > 2. Rewrite the Query using the IndexReader reader: > q = q.rewrite(reader); > > 3. Write the terms into a previously initialized empty set terms: > Set<Term> terms = new HashSet<>(); > q.extractTerms(terms); > > However, this results in an empty set. I believe this is due to the fact > that the rewritten query is a ConstantScoreQuery object; > q.extractTerms(terms) does not yield any terms anyway. q.getQuery() > returns null however; according to the documentation, this should happen > when it wraps a filter which it does not, supposedly. > This is Lucene 4.0. Any hints? > Thanks! > Carsten > > > -- > Institut für Deutsche Sprache | http://www.ids-mannheim.de > Projekt KorAP | http://korap.ids-mannheim.de > Tel. +49-(0)621-43740789 | schno...@ids-mannheim.de > Korpusanalyseplattform der nächsten Generation > Next Generation Corpus Analysis Platform > > --------------------------------------------------------------------- > To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org > For additional commands, e-mail: java-user-h...@lucene.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org For additional commands, e-mail: java-user-h...@lucene.apache.org