You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by mi...@apache.org on 2012/09/14 19:16:34 UTC

svn commit: r1384852 - in /lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search: BooleanQuery.java BooleanScorer.java

Author: mikemccand
Date: Fri Sep 14 17:16:33 2012
New Revision: 1384852

URL: http://svn.apache.org/viewvc?rev=1384852&view=rev
Log:
improve comments; throw UOE from BS.freq() since it's not a doc-at-a-time scorer

Modified:
    lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/BooleanQuery.java
    lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/BooleanScorer.java

Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/BooleanQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/BooleanQuery.java?rev=1384852&r1=1384851&r2=1384852&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/BooleanQuery.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/BooleanQuery.java Fri Sep 14 17:16:33 2012
@@ -332,7 +332,14 @@ public class BooleanQuery extends Query 
           optional.add(subScorer);
         }
       }
-      
+
+      // NOTE: we could also use BooleanScorer, if we knew
+      // this BooleanQuery was embedded in another
+      // BooleanQuery that was also using BooleanScorer (ie,
+      // BooleanScorer can nest).  But this is hard to
+      // detect and we never do so today... (ie, we only
+      // return BooleanScorer for topScorer):
+
       // Check if we can return a BooleanScorer
       if (!scoreDocsInOrder && topScorer && required.size() == 0) {
         return new BooleanScorer(this, disableCoord, minNrShouldMatch, optional, prohibited, maxCoord);

Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/BooleanScorer.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/BooleanScorer.java?rev=1384852&r1=1384851&r2=1384852&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/BooleanScorer.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/BooleanScorer.java Fri Sep 14 17:16:33 2012
@@ -254,7 +254,12 @@ final class BooleanScorer extends Scorer
           // clauses
           //&& (current.bits & requiredMask) == requiredMask) {
           
-          // TODO: can we remove this?  
+          // NOTE: Lucene always passes max =
+          // Integer.MAX_VALUE today, because we never embed
+          // a BooleanScorer inside another (even though
+          // that should work)... but in theory an outside
+          // app could pass a different max so we must check
+          // it:
           if (current.doc >= max){
             tmp = current;
             current = current.next;
@@ -318,7 +323,7 @@ final class BooleanScorer extends Scorer
 
   @Override
   public float freq() throws IOException {
-    return current.coord;
+    throw new UnsupportedOperationException();
   }
 
   @Override



Re: svn commit: r1384852 - in /lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search: BooleanQuery.java BooleanScorer.java

Posted by Michael McCandless <lu...@mikemccandless.com>.
+1, I'll do that.

Mike McCandless

http://blog.mikemccandless.com


On Fri, Sep 14, 2012 at 4:07 PM, Robert Muir <rc...@gmail.com> wrote:
> +1
>
> On Fri, Sep 14, 2012 at 4:06 PM, Uwe Schindler <uw...@thetaphi.de> wrote:
>> We should also throw UOE from getChildScorers? This was the issue I had with that one, because we never called freq(). Getting ChildScoreres from BS1 is also useless, as the information is unuseable.
>>
>> -----
>> Uwe Schindler
>> H.-H.-Meier-Allee 63, D-28213 Bremen
>> http://www.thetaphi.de
>> eMail: uwe@thetaphi.de
>>
>>
>>> -----Original Message-----
>>> From: mikemccand@apache.org [mailto:mikemccand@apache.org]
>>> Sent: Friday, September 14, 2012 7:17 PM
>>> To: commits@lucene.apache.org
>>> Subject: svn commit: r1384852 - in
>>> /lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search:
>>> BooleanQuery.java BooleanScorer.java
>>>
>>> Author: mikemccand
>>> Date: Fri Sep 14 17:16:33 2012
>>> New Revision: 1384852
>>>
>>> URL: http://svn.apache.org/viewvc?rev=1384852&view=rev
>>> Log:
>>> improve comments; throw UOE from BS.freq() since it's not a doc-at-a-time
>>> scorer
>>>
>>> Modified:
>>>
>>> lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/BooleanQue
>>> ry.java
>>>
>>> lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/BooleanSco
>>> rer.java
>>>
>>> Modified:
>>> lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/BooleanQue
>>> ry.java
>>> URL:
>>> http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apac
>>> he/lucene/search/BooleanQuery.java?rev=1384852&r1=1384851&r2=1384852
>>> &view=diff
>>> ================================================================
>>> ==============
>>> ---
>>> lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/BooleanQue
>>> ry.java (original)
>>> +++
>>> lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/BooleanQue
>>> ry.java Fri Sep 14 17:16:33 2012
>>> @@ -332,7 +332,14 @@ public class BooleanQuery extends Query
>>>            optional.add(subScorer);
>>>          }
>>>        }
>>> -
>>> +
>>> +      // NOTE: we could also use BooleanScorer, if we knew
>>> +      // this BooleanQuery was embedded in another
>>> +      // BooleanQuery that was also using BooleanScorer (ie,
>>> +      // BooleanScorer can nest).  But this is hard to
>>> +      // detect and we never do so today... (ie, we only
>>> +      // return BooleanScorer for topScorer):
>>> +
>>>        // Check if we can return a BooleanScorer
>>>        if (!scoreDocsInOrder && topScorer && required.size() == 0) {
>>>          return new BooleanScorer(this, disableCoord, minNrShouldMatch,
>>> optional, prohibited, maxCoord);
>>>
>>> Modified:
>>> lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/BooleanSco
>>> rer.java
>>> URL:
>>> http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apac
>>> he/lucene/search/BooleanScorer.java?rev=1384852&r1=1384851&r2=1384852
>>> &view=diff
>>> ================================================================
>>> ==============
>>> ---
>>> lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/BooleanSco
>>> rer.java (original)
>>> +++
>>> lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/BooleanSco
>>> rer.java Fri Sep 14 17:16:33 2012
>>> @@ -254,7 +254,12 @@ final class BooleanScorer extends Scorer
>>>            // clauses
>>>            //&& (current.bits & requiredMask) == requiredMask) {
>>>
>>> -          // TODO: can we remove this?
>>> +          // NOTE: Lucene always passes max =
>>> +          // Integer.MAX_VALUE today, because we never embed
>>> +          // a BooleanScorer inside another (even though
>>> +          // that should work)... but in theory an outside
>>> +          // app could pass a different max so we must check
>>> +          // it:
>>>            if (current.doc >= max){
>>>              tmp = current;
>>>              current = current.next;
>>> @@ -318,7 +323,7 @@ final class BooleanScorer extends Scorer
>>>
>>>    @Override
>>>    public float freq() throws IOException {
>>> -    return current.coord;
>>> +    throw new UnsupportedOperationException();
>>>    }
>>>
>>>    @Override
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
>> For additional commands, e-mail: dev-help@lucene.apache.org
>>
>
>
>
> --
> lucidworks.com
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
> For additional commands, e-mail: dev-help@lucene.apache.org
>

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


Re: svn commit: r1384852 - in /lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search: BooleanQuery.java BooleanScorer.java

Posted by Robert Muir <rc...@gmail.com>.
+1

On Fri, Sep 14, 2012 at 4:06 PM, Uwe Schindler <uw...@thetaphi.de> wrote:
> We should also throw UOE from getChildScorers? This was the issue I had with that one, because we never called freq(). Getting ChildScoreres from BS1 is also useless, as the information is unuseable.
>
> -----
> Uwe Schindler
> H.-H.-Meier-Allee 63, D-28213 Bremen
> http://www.thetaphi.de
> eMail: uwe@thetaphi.de
>
>
>> -----Original Message-----
>> From: mikemccand@apache.org [mailto:mikemccand@apache.org]
>> Sent: Friday, September 14, 2012 7:17 PM
>> To: commits@lucene.apache.org
>> Subject: svn commit: r1384852 - in
>> /lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search:
>> BooleanQuery.java BooleanScorer.java
>>
>> Author: mikemccand
>> Date: Fri Sep 14 17:16:33 2012
>> New Revision: 1384852
>>
>> URL: http://svn.apache.org/viewvc?rev=1384852&view=rev
>> Log:
>> improve comments; throw UOE from BS.freq() since it's not a doc-at-a-time
>> scorer
>>
>> Modified:
>>
>> lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/BooleanQue
>> ry.java
>>
>> lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/BooleanSco
>> rer.java
>>
>> Modified:
>> lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/BooleanQue
>> ry.java
>> URL:
>> http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apac
>> he/lucene/search/BooleanQuery.java?rev=1384852&r1=1384851&r2=1384852
>> &view=diff
>> ================================================================
>> ==============
>> ---
>> lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/BooleanQue
>> ry.java (original)
>> +++
>> lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/BooleanQue
>> ry.java Fri Sep 14 17:16:33 2012
>> @@ -332,7 +332,14 @@ public class BooleanQuery extends Query
>>            optional.add(subScorer);
>>          }
>>        }
>> -
>> +
>> +      // NOTE: we could also use BooleanScorer, if we knew
>> +      // this BooleanQuery was embedded in another
>> +      // BooleanQuery that was also using BooleanScorer (ie,
>> +      // BooleanScorer can nest).  But this is hard to
>> +      // detect and we never do so today... (ie, we only
>> +      // return BooleanScorer for topScorer):
>> +
>>        // Check if we can return a BooleanScorer
>>        if (!scoreDocsInOrder && topScorer && required.size() == 0) {
>>          return new BooleanScorer(this, disableCoord, minNrShouldMatch,
>> optional, prohibited, maxCoord);
>>
>> Modified:
>> lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/BooleanSco
>> rer.java
>> URL:
>> http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apac
>> he/lucene/search/BooleanScorer.java?rev=1384852&r1=1384851&r2=1384852
>> &view=diff
>> ================================================================
>> ==============
>> ---
>> lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/BooleanSco
>> rer.java (original)
>> +++
>> lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/BooleanSco
>> rer.java Fri Sep 14 17:16:33 2012
>> @@ -254,7 +254,12 @@ final class BooleanScorer extends Scorer
>>            // clauses
>>            //&& (current.bits & requiredMask) == requiredMask) {
>>
>> -          // TODO: can we remove this?
>> +          // NOTE: Lucene always passes max =
>> +          // Integer.MAX_VALUE today, because we never embed
>> +          // a BooleanScorer inside another (even though
>> +          // that should work)... but in theory an outside
>> +          // app could pass a different max so we must check
>> +          // it:
>>            if (current.doc >= max){
>>              tmp = current;
>>              current = current.next;
>> @@ -318,7 +323,7 @@ final class BooleanScorer extends Scorer
>>
>>    @Override
>>    public float freq() throws IOException {
>> -    return current.coord;
>> +    throw new UnsupportedOperationException();
>>    }
>>
>>    @Override
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
> For additional commands, e-mail: dev-help@lucene.apache.org
>



-- 
lucidworks.com

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


RE: svn commit: r1384852 - in /lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search: BooleanQuery.java BooleanScorer.java

Posted by Uwe Schindler <uw...@thetaphi.de>.
We should also throw UOE from getChildScorers? This was the issue I had with that one, because we never called freq(). Getting ChildScoreres from BS1 is also useless, as the information is unuseable.

-----
Uwe Schindler
H.-H.-Meier-Allee 63, D-28213 Bremen
http://www.thetaphi.de
eMail: uwe@thetaphi.de


> -----Original Message-----
> From: mikemccand@apache.org [mailto:mikemccand@apache.org]
> Sent: Friday, September 14, 2012 7:17 PM
> To: commits@lucene.apache.org
> Subject: svn commit: r1384852 - in
> /lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search:
> BooleanQuery.java BooleanScorer.java
> 
> Author: mikemccand
> Date: Fri Sep 14 17:16:33 2012
> New Revision: 1384852
> 
> URL: http://svn.apache.org/viewvc?rev=1384852&view=rev
> Log:
> improve comments; throw UOE from BS.freq() since it's not a doc-at-a-time
> scorer
> 
> Modified:
> 
> lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/BooleanQue
> ry.java
> 
> lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/BooleanSco
> rer.java
> 
> Modified:
> lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/BooleanQue
> ry.java
> URL:
> http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apac
> he/lucene/search/BooleanQuery.java?rev=1384852&r1=1384851&r2=1384852
> &view=diff
> ================================================================
> ==============
> ---
> lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/BooleanQue
> ry.java (original)
> +++
> lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/BooleanQue
> ry.java Fri Sep 14 17:16:33 2012
> @@ -332,7 +332,14 @@ public class BooleanQuery extends Query
>            optional.add(subScorer);
>          }
>        }
> -
> +
> +      // NOTE: we could also use BooleanScorer, if we knew
> +      // this BooleanQuery was embedded in another
> +      // BooleanQuery that was also using BooleanScorer (ie,
> +      // BooleanScorer can nest).  But this is hard to
> +      // detect and we never do so today... (ie, we only
> +      // return BooleanScorer for topScorer):
> +
>        // Check if we can return a BooleanScorer
>        if (!scoreDocsInOrder && topScorer && required.size() == 0) {
>          return new BooleanScorer(this, disableCoord, minNrShouldMatch,
> optional, prohibited, maxCoord);
> 
> Modified:
> lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/BooleanSco
> rer.java
> URL:
> http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apac
> he/lucene/search/BooleanScorer.java?rev=1384852&r1=1384851&r2=1384852
> &view=diff
> ================================================================
> ==============
> ---
> lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/BooleanSco
> rer.java (original)
> +++
> lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/search/BooleanSco
> rer.java Fri Sep 14 17:16:33 2012
> @@ -254,7 +254,12 @@ final class BooleanScorer extends Scorer
>            // clauses
>            //&& (current.bits & requiredMask) == requiredMask) {
> 
> -          // TODO: can we remove this?
> +          // NOTE: Lucene always passes max =
> +          // Integer.MAX_VALUE today, because we never embed
> +          // a BooleanScorer inside another (even though
> +          // that should work)... but in theory an outside
> +          // app could pass a different max so we must check
> +          // it:
>            if (current.doc >= max){
>              tmp = current;
>              current = current.next;
> @@ -318,7 +323,7 @@ final class BooleanScorer extends Scorer
> 
>    @Override
>    public float freq() throws IOException {
> -    return current.coord;
> +    throw new UnsupportedOperationException();
>    }
> 
>    @Override



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