lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From javier muguruza <jmugur...@gmail.com>
Subject Re: all stop words in exact phrase get 0 hits
Date Mon, 19 Dec 2005 22:56:33 GMT
What Erik mentions is what I was looking for. I have not had a look at
the code yet, but it sounds like it. I'll have a look at the
AnalyzerDemo  code tomorrow.

In my case I guess I could use Chris' approach too, but it will be
easier the other one. For the record, my UI has both a 'simple' UI
with textboxes and an 'advanced' one where the user will have to use
proper queryparser syntax, if he dares :)

thanks guys,
javier

On 12/19/05, Erik Hatcher <erik@ehatchersolutions.com> wrote:
> Hoss - the main caveat with this approach is that a user could select
> a different field from any of the designated text boxes.  Putting
> "subject:foo" in the name text box for example.
>
> I think this is one of my biggest issues with QueryParser these days,
> it exposes too much power.  It's like giving a SQL text box to your
> database application (read-only, of course).  There are generally
> fields not made for user querying.
>
> Caveat asides, the technique you describe is a good one and worth
> considering when dealing with these types of situations.
>
>         Erik
>
>
>
> On Dec 19, 2005, at 2:14 PM, Chris Hostetter wrote:
>
> >
> > : > I have moved from my approach:
> > : > Query query = QueryParser.parse("big lucene expression", "afield",
> > : > LuceneHelper.getAnalyzer());
> > : >
> > : > to building the query based on BooleanQuery, PhareQuery, TermQuery
> > : > etc...But before the analyzer was doing a bunch of work in my
> > incoming
> > : > words, and I dont see an easy way to do the same sort of stuff
> > to the
> > : > incoming  words used in PhareQuery, TermQuery etc.
> >
> > In addition to Erik's suggestion, something that i find frequently
> > makes
> > sense is to use the QueryParser in each case where you are dealing
> > with a
> > discrete "input string" -- and then combine them into a BooleanQuery
> > (along with any other progromatically generated TermQueries you
> > might want
> > for other reasons)
> >
> > For example, it looks like your applciation is targeted at
> > searching email
> > right?  let's assume your application allows the user to specify the
> > following inputs
> >
> >     * a text box for search words
> >     * a text box for people's names/email
> >     * pulldowns for picking date ranges
> >
> > ...and you want to look in the subject, body, and attachment fields
> > for
> > the input words (with differnet boosts) and in all of the header
> > fields
> > for the name/email input.   you can builda Date object out of the
> > pulldown
> > yourself, and then do something like this with the two strings...
> >
> >    QueryParser subP = new QueryParser("subject",SomeAnalyzer)
> >    QueryParser bodyP = new QueryParser("body",SomeAnalyzer)
> >    QueryParser attachP = new QueryParser("attachemnts",SomeAnalyzer)
> >    QueryParser headP = new QueryParser
> > ("headers",AnalyzerThatKnowsAboutEmailAddress)
> >    Query s = subP.parse(words);
> >    s.setBoost(2.0)
> >    Query b = bodyP.parse(words);
> >    Query a = attachP.parse(words);
> >    a.setBoost(0.5)
> >    Query h = headP.parse(person);
> >    h.setBoost(1.5)
> >    BooleanQuery bq = new BooleanQuery();
> >    bq.add(s,false,false);
> >    bq.add(b,false,false);
> >    bq.add(a,false,false);
> >    bq.add(h,false,false);
> >
> > ...and then execute your search using a filter built from the date
> > range
> > pulldowns.
> >
> >
> > -Hoss
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> > For additional commands, e-mail: java-user-help@lucene.apache.org
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> For additional commands, e-mail: java-user-help@lucene.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org


Mime
View raw message