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

Reply via email to