lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Charles" <char...@radworkz.com>
Subject Re: how to join 2 queries togther
Date Wed, 22 Jan 2003 19:35:12 GMT
Hi everyone,

First of all I'd like to thank you guys for developing a great search engine
framework. I've tested it out and it works flawlessly (and really fast too).

Right now I plan to create a more advance search capability. I understand
how to construct the Query object using the QueryParser, but I would like to
know how I can add in different types of queries (like range, terms,
boolean) all into one. I'm not sure if I can do this with the QueryParser
and am looking for information on how to manually construct a Query object
so i can combine all these requirements.

Here's what I want to do: I would like to have the user select values from a
combo box (e.g. Price range, Area, Country, Number of rooms, land area, is
Freehold or Leasehold etc). From what I gather this involves several type of
queries including RangeQuery (for the price range), a TermQuery,
BooleanQuery etc. So the question is how do i combine all these types of
queries into one so I can obtain a single Hits result that matches all these
requirements?

Any advice or urls is very much appreciated.
Charles


----- Original Message -----
From: "alex" <a@wong45.freeserve.co.uk>
To: "Lucene Users List" <lucene-user@jakarta.apache.org>
Sent: Tuesday, January 21, 2003 3:23 PM
Subject: Re: how to join 2 queries togther


> Thank you everyone for your help
>
>
> ----- Original Message -----
> From: "Lichtner, Guglielmo" <Guglielmo.Lichtner@gs.com>
> To: "'Lucene Users List'" <lucene-user@jakarta.apache.org>
> Sent: Monday, January 20, 2003 9:52 PM
> Subject: RE: how to join 2 queries togther
>
>
> >
> > From this code I think I see a possible problem.
> >
> > I think one way to fix it is to parse the word in readLine() and add a
> term
> > query for each:
> >
> > BooleanQuery query = new BooleanQuery();
> > System.out.print("will all of the words ");
> > StringTokenizer tok1 = new StringTokenizer(in.readLine());
> > while (tok.hasMoreTokens()) {
> >     query.add(new TermQuery(new Term("content", tok1.nextToken()), true,
> > false);
> > }
> > System.out.print("without the words");
> > StringTokenizer tok2 = new StringTokenizer(in.readLine());
> > while (tok.hasMoreTokens()) {
> >     query.add(new TermQuery(new Term("content", tok2.nextToken()),
false,
> > true);
> > }
> > System.out.println("Searching for: " + query);
> > Hits hits = searcher.search(query);
> > System.out.println(hits.length() + " total matching documents  ");
> >
> >
> > -----Original Message-----
> > From: alex [mailto:a@wong45.freeserve.co.uk]
> > Sent: Monday, January 20, 2003 2:57 PM
> > To: Lucene Users List
> > Subject: Re: how to join 2 queries togther
> >
> >
> > thxs for your suggestion this is what i have written but it does not
work
> > any suggestion on how to get it to work ?
> >
> >  System.out.print("will all of the words ");
> >         String q1 = in.readLine();
> >  System.out.print("without the words");
> >         String q2 = in.readLine();
> >
> >         BooleanQuery query = new BooleanQuery();
> >               Query matchall = QueryParser.parse(q1, "content",
analyzer);
> >         query.add(matchall, true, false);
> >               Query exclude = QueryParser.parse( q2, "content" ,
> analyzer);
> >         query.add(exclude, false, true);
> >
> >         System.out.println("Searching for: " +
query.toString("content"));
> >         Hits hits = searcher.search(query);
> >         System.out.println(hits.length() + " total matching documents
");
> >
> >
> > ----- Original Message -----
> > From: "Lichtner, Guglielmo" <Guglielmo.Lichtner@gs.com>
> > To: "'Lucene Users List'" <lucene-user@jakarta.apache.org>
> > Sent: Monday, January 20, 2003 4:04 PM
> > Subject: RE: how to join 2 queries togther
> >
> >
> > >
> > > I'm a newbie, but I could suggest this:
> > >
> > > BooleanQuery bq = new BooleanQuery();
> > > bq.add(firstQuery, true, false);
> > > bq.add(secondQuery, false, true);
> > >
> > > That should make the first query required, and the second
> > > one prohibited, which is like saying "+firstQuery -secondQuery"
> > >
> > > I haven't tried this myself but I did try this for an either/or
> > combination,
> > > and it does work for me.
> > >
> > > -----Original Message-----
> > > From: alex [mailto:a@wong45.freeserve.co.uk]
> > > Sent: Monday, January 20, 2003 10:54 AM
> > > To: Lucene User
> > > Subject: how to join 2 queries togther
> > >
> > >
> > > hi all
> > >
> > > I have a method which takes in a normal query breaks into token and
> places
> > +
> > > in front it
> > > I have a second method which does the same instead puts a - sign front
> the
> > > token
> > >
> > > the reason i have done this is so that the user do not need to add +
> and -
> > > signs by themselfs and also I cound
> > >  not get the booleanQuery to work
> > >
> > > this makes it so that i have 2 queries
> > >
> > > 1) a file must contain all these words
> > > 2) a file must exclude this words
> > >
> > > my question is how do join these 2 queries togther so it filters out
> words
> > > that i want and do not want ?
> > >
> > > Alex
> > >
> > > --
> > > To unsubscribe, e-mail:
> > <mailto:lucene-user-unsubscribe@jakarta.apache.org>
> > > For additional commands, e-mail:
> > <mailto:lucene-user-help@jakarta.apache.org>
> > >
> > >
> >
> >
> > --
> > To unsubscribe, e-mail:
> > <mailto:lucene-user-unsubscribe@jakarta.apache.org>
> > For additional commands, e-mail:
> > <mailto:lucene-user-help@jakarta.apache.org>
> >
> > --
> > To unsubscribe, e-mail:
> <mailto:lucene-user-unsubscribe@jakarta.apache.org>
> > For additional commands, e-mail:
> <mailto:lucene-user-help@jakarta.apache.org>
> >
> >
>
>
> --
> To unsubscribe, e-mail:
<mailto:lucene-user-unsubscribe@jakarta.apache.org>
> For additional commands, e-mail:
<mailto:lucene-user-help@jakarta.apache.org>
>
>
>



--
To unsubscribe, e-mail:   <mailto:lucene-user-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:lucene-user-help@jakarta.apache.org>


Mime
View raw message