[prev in list] [next in list] [prev in thread] [next in thread]
List: lucene-user
Subject: Re: QueryParser refactoring
From: sergiu gordea <gsergiu () ifit ! uni-klu ! ac ! at>
Date: 2005-03-09 12:40:58
Message-ID: 422EEEDA.6050405 () ifit ! uni-klu ! ac ! at
[Download RAW message or body]
Erik Hatcher wrote:
> On Mar 8, 2005, at 5:17 PM, Chris Hostetter wrote:
>
>>
>> Earlier in this thread...
>>
>> : >>> +a -> a
>> : >>
>> : >> Hmmm.... this is a debatable one. It's returning a TermQuery in
>> this
>> : >> case for "a". Is that appropriate? Or should it return a
>> : >> BooleanQuery
>> : >> with a single TermQuery as required?
>>
>> : > Ok.
>> : > The question how to handle BooleanQueries, that contain prohibited
>> : > terms
>> : > only, is a question on it's own.
>> : > In my fix I choose to silently drop these queries. Basically because
>> : > it's
>> : > effectivly dropped during querying anyway.
>>
>> ...I would argue that the most correct behavior would be for QP to
>> generate a Boolean query indicating the required/expluded term --
>> even if
>> a Searcher can't run that query as is. It's not the QueryParsers job to
>> know what Query object structures make sense or not, just to know
>> what the
>> sanest possible maping from text to query object tree is.
>
>
> That is a very reasonable mandate for QueryParser. I agree.
>
> I have committed a round of changes to the PrecedenceQueryParser. I'm
> going to leave it alone for a while. There are a couple of tests that
> are failing because I adjusted them to be as desired but not yet
> implemented. Here are the short comings currently:
>
> assertQueryEquals("a OR !b", null, "a (-b)");
> junit.framework.AssertionFailedError: Query /a OR !b/ yielded
> /a -b/, expecting /a (-b)/
>
> query1 = parser.parse("A OR NOT B AND C");
> query2 = parser.parse("A (-B +C)");
> assertEquals(query1, query2);
> junit.framework.AssertionFailedError: expected:<field:A
> -(+field:B +field:C)> but was:<field:A (-field:B +field:C)>
>
> I believe these are similar, if not identical, to what QueryParser
> does with queries, so we're no worse off and we now have operator
> precedence with AND/OR. I feel the NOT/-/! precedence issue needs to
> be addressed before this is a viable replacement. If any JavaCC savvy
> folks are interested in lending a handy to fix this remaining issue
> I'd be ecstatic! I tried some things but thus far unsuccessful.
>
> What else is missing/broken?
Unfortunately I don't have a lucene project on my computer as this
moment and I cannot check myself,
do the tests for MultiFieldQueryParser also pass?
Best,
Sergiu
>
> Erik
>
>
> ---------------------------------------------------------------------
> 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
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic