Do this with the BooleanQuery:

> Query q1 = new QueryParser(Version.LUCENE_43, "label", analyzer
> ).parse(label);
> Query q2 = new QueryParser(Version.LUCENE_43, "abstract", analyzer
> ).parse(abstract);
> BooleanQuery bq = new BooleanQuery();
> booleanQuery.add(q1,BooleanClause.Occur.MUST);
> booleanQuery.add(q2,BooleanClause.Occur.MUST);
> Hits hits = indexSearcher.search(booleanQuery);


This is right for what I want to do?

Thanks.

2013/8/6 Ian Lea <ian....@gmail.com>

The standard way is to combine the searches by label and abstract into
> one query.  If using QueryParser a simple example would look something
> like label:aaa abstract:bbb abstract:ccc.  You can get the same
> effect, with more flexibility, by building a BooleanQuery in code.
>
> Also consider using a Filter e.g. QueryWrapperFilter on a query for
> label:aaa with the query generated by QueryParser or direct
> construction of a TermQuery.  See also CachingWrapperFilter if the
> index isn't constantly changing.
>
>
> --
> Ian.
>
>
> On Tue, Aug 6, 2013 at 3:19 PM, David Miranda <david.b.mira...@gmail.com>
> wrote:
> > Hi,
> >
> > I have a Lucene index that has the fields label and abstract.
> >
> > I want to do is first do a search by label field, for this i use:
> >
> > TopScoreDocCollector collector = TopScoreDocCollector.create(MAX_HITS,
> true
> >> );
> >> searcher.search(q, collector);
> >> ScoreDoc[] hits = collector.topDocs().scoreDocs;
> >
> >
> > After the results of the first survey, I want to do a search in the
> > abstract field only in results obtained from the first survey.
> >
> > How i do this?
> > Thanks in advance.
> >
> > David
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org
> For additional commands, e-mail: java-user-h...@lucene.apache.org
>
>


-- 
Cumprimentos,
David Miranda

Reply via email to