On Mon, Oct 8, 2012 at 2:29 PM, Thomas Matthijs <li...@selckin.be> wrote: > On Mon, Oct 8, 2012 at 11:28 AM, Uwe Schindler <u...@thetaphi.de> wrote: >> Hi, >> >> This is a known problem currently. I think there is already an issue open, >> so this was not solved for 4.0 (I don't have the issue no available at the >> moment). >> >> My plan to fix this is to make Filters behave like queries (with a rewrite() >> method), so the correct context can be passed to a "rewritten" filter (when >> QueryWrapperFilter rewrites, it rewrites also the query). The current >> approach is for performance reasons, because without rewrite, you would have >> no persistent "state" information between index segments, so the Query has >> to be rewritten on the top-level index for every segment again. By the >> current approach, the query is only rewritten against the current segment >> with a private IndexSearcher. By that process the docBase gets lost. So >> currently this does not work. >> >> I would recommend to *not* use QueryWrapperFilter and instead wrap with >> ConstantScoreQuery and add it to the query as a Boolean MUST clause. In that >> case it should work fine. There is no performance increase by using >> QueryWrapperFilter, so no reason to use it. > > It's important for me that the score does not change from what it was > before, and i'm unable to construct a booleanquery w/ CSQ that > basically ignores the filter score. > > So i made a quick attempt at a basic FilteredQuery > (http://pastie.org/4932671) Just returning a ConjunctionScorer with > both the query & filter query, and overriding score() to return the > query score should do the trick i think? > > This seems to work correctly in most cases but a test where i just > have a MUST_NOT clause in a (boolean)filter does not work this way, > because BooleanQuery with a single MUST_NOT clause just shortcircuits > this case and returns null from scorer(). A single MUST_NOT clause > worked correct in a BooleanFilter. > > I can't wrap my head around it yet why its ok for BooleanQuery to > ignore these clauses ? Anyway i'm now attempting to make a scorer for > only prohibited clauses. >
Guess I can/should not https://issues.apache.org/jira/browse/LUCENE-3451 Why are pure negative queries such a problem? --------------------------------------------------------------------- To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org For additional commands, e-mail: java-user-h...@lucene.apache.org