You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by gunjan_versata <gu...@gmail.com> on 2010/01/07 12:17:39 UTC

Meaning of this error: Failure to meet condition(s) of required/prohibited clause(s)???


Hi All,

i have a document indexed in solr, which is as follow :

<doc>
<str name="id">P-E-HE-Philips-32PFL5409-98-Black-32</str>
<arr name="keywords">
<str>Philips</str>
<str>LCD TVs</str>
</arr>
<str name="title">
Philips 32PFL5409-98  32" LCDTV withPixel Plus HD (Black,32)
</str>
</doc>

now when i search for lcd tvs, i dont the above doc in search results.. on
doing explain other, i got the following output.. 

       "P-E-HE-Philips-32PFL5409-98-Black-32":"
0.0 = (NON-MATCH) Failure to meet condition(s) of required/prohibited
clause(s)
  0.0 = no match on required clause (((subKeywords:lcd^0.1 |
keywords:lcd^0.5 | defaultKeywords:lcd | contributors:lcd^0.5 | title:lcd)
(subKeywords:televis^0.1 | keywords:tvs^0.5 | defaultKeywords:tvs |
contributors:tvs^0.5 | (title:televis title:tv title:tvs)))~1)
    0.0 = (NON-MATCH) Failure to match minimum number of optional clauses: 1
  0.91647065 = (MATCH) max of:
    0.91647065 = (MATCH) weight(keywords:lcd tvs^0.5 in 40), product of:
      0.13178125 = queryWeight(keywords:lcd tvs^0.5), product of:
        0.5 = boost
        11.127175 = idf(docFreq=34, maxDocs=875476)
        0.023686381 = queryNorm
      6.9544845 = (MATCH) fieldWeight(keywords:lcd tvs in 40), product of:
        1.0 = tf(termFreq(keywords:lcd tvs)=1)
        11.127175 = idf(docFreq=34, maxDocs=875476)
        0.625 = fieldNorm(field=keywords, doc=40)

i am not sure of what it means? and if i can tweak it or not?  please not,
this score was more than the results which showed up...

Regards,
Gunjan

-- 
View this message in context: http://old.nabble.com/Meaning-of-this-error%3A-Failure-to-meet-condition%28s%29-of-required-prohibited-clause%28s%29----tp27058008p27058008.html
Sent from the Solr - User mailing list archive at Nabble.com.


Re: Meaning of this error: Failure to meet condition(s) of required/prohibited clause(s)???

Posted by Chris Hostetter <ho...@fucit.org>.
: Subject: Meaning of this error: Failure to meet condition(s) of
:     required/prohibited clause(s)???

First of all: it's not an error -- it's a debuging statment generated when 
you asekd for an explanation of a document's score...

: 0.0 = (NON-MATCH) Failure to meet condition(s) of required/prohibited
: clause(s)

It means that you have a BooleanQuery with some required or prohibited 
clauses, and he document didn't meet that condition.

The nested explanations go into more detail, soo...

:   0.0 = no match on required clause (((subKeywords:lcd^0.1 |
: keywords:lcd^0.5 | defaultKeywords:lcd | contributors:lcd^0.5 | title:lcd)
: (subKeywords:televis^0.1 | keywords:tvs^0.5 | defaultKeywords:tvs |
: contributors:tvs^0.5 | (title:televis title:tv title:tvs)))~1)

that entire thing is a BooleanQuery which is a required clause 
of the "outer" BooleanQuery mentioned previously, and this 
document doesn't match it.  The nested explanation tells you why...

:     0.0 = (NON-MATCH) Failure to match minimum number of optional clauses: 1

...so there you go.  This BooleanQuery consists of two clauses which are 
each DisjunctionMaxQueries (one for lcd and one for tv) and the 
minNrShouldMatch property requires that at least one must match (that's 
the "~1" in the toString info above)

Based on another email where you provided some of your schema details (but 
not enough to get a clera picture of everything going on) the one thing i 
can tell you is why you didn't get a match on the "keywords" field even 
though it had the string "LCD TVs" ... the reason is because you are using 
the KeywordTokenizer which treats all of it's input as a single token -- 
but whitespace is markup for the QueryParser (just like quotes and +/-) 
... it chunks the input on whitespace boundaries before consulting the 
field analyzers, so it the resulting query doesn't search the keywords 
field for "lcd tvs" as a single string unless you include it in quotes.

(you do however see later in the score explanation that it is doing this, 
and finding a match, because you have keywords i the "pf" param, which 
constructs an implicit phrase query for your entire input string -- but 
this is only a boost, it can't help a document that doesn't match the qf 
fields in the first place).

-Hoss


Re: Meaning of this error: Failure to meet condition(s) of required/prohibited clause(s)???

Posted by gunjan_versata <gu...@gmail.com>.
I have defined a field type in schema.xml :

<fieldType name="lowercase" class="solr.TextField"
positionIncrementGap="100">
      <analyzer>
        <tokenizer class="solr.KeywordTokenizerFactory"/>
        <filter class="solr.LowerCaseFilterFactory" />
        <filter class="solr.TrimFilterFactory" />
        <filter class="solr.SnowballPorterFilterFactory" language="English"
protected="protwords.txt"/>
      </analyzer>
</fieldType>

<field name="keywords" type="lowercase" indexed="true" stored="true"
multiValued="true"/> 
<field name="defaultKeywords" type="lowercase" indexed="true" stored="true"
multiValued="true"/> 
<field name="subKeywords" type="textTight" indexed="true" stored="true"
multiValued="true"/>

The other fields don't have "lcd tvs" in them.. 

And handler used is :

<requestHandler name="product" class="solr.DisMaxRequestHandler" >
    <lst name="defaults">
     <str name="echoParams">explicit</str>
     <str name="qf">
        title^0.7 contributors^0.2 keywords^0.5 defaultKeywords^1
subKeywords^0.1
     </str>
     <str name="pf">
        keywords^0.5 defaultKeywords^1
     </str>
     <str name="mm">50%</str>
    </lst>
</requestHandler>

-Regards,
Gunjan


Erick Erickson wrote:
> 
> How are these fields defined in your schema.xml? Note
> that String types are indexed without tokenization, so
> if <str> is defined as a String field type, that may be
> part of your problem (try text type if so).
> 
> If this is irrelevant, please show us the relevant parts
> of your schema and the query you're submitting...
> 
> Erick
> 
> On Thu, Jan 7, 2010 at 6:17 AM, gunjan_versata
> <gu...@gmail.com>wrote:
> 
>>
>>
>> Hi All,
>>
>> i have a document indexed in solr, which is as follow :
>>
>> <doc>
>> <str name="id">P-E-HE-Philips-32PFL5409-98-Black-32</str>
>> <arr name="keywords">
>> <str>Philips</str>
>> <str>LCD TVs</str>
>> </arr>
>> <str name="title">
>> Philips 32PFL5409-98  32" LCDTV withPixel Plus HD (Black,32)
>> </str>
>> </doc>
>>
>> now when i search for lcd tvs, i dont the above doc in search results..
>> on
>> doing explain other, i got the following output..
>>
>>       "P-E-HE-Philips-32PFL5409-98-Black-32":"
>> 0.0 = (NON-MATCH) Failure to meet condition(s) of required/prohibited
>> clause(s)
>>  0.0 = no match on required clause (((subKeywords:lcd^0.1 |
>> keywords:lcd^0.5 | defaultKeywords:lcd | contributors:lcd^0.5 |
>> title:lcd)
>> (subKeywords:televis^0.1 | keywords:tvs^0.5 | defaultKeywords:tvs |
>> contributors:tvs^0.5 | (title:televis title:tv title:tvs)))~1)
>>    0.0 = (NON-MATCH) Failure to match minimum number of optional clauses:
>> 1
>>  0.91647065 = (MATCH) max of:
>>    0.91647065 = (MATCH) weight(keywords:lcd tvs^0.5 in 40), product of:
>>      0.13178125 = queryWeight(keywords:lcd tvs^0.5), product of:
>>        0.5 = boost
>>        11.127175 = idf(docFreq=34, maxDocs=875476)
>>        0.023686381 = queryNorm
>>      6.9544845 = (MATCH) fieldWeight(keywords:lcd tvs in 40), product of:
>>        1.0 = tf(termFreq(keywords:lcd tvs)=1)
>>        11.127175 = idf(docFreq=34, maxDocs=875476)
>>        0.625 = fieldNorm(field=keywords, doc=40)
>>
>> i am not sure of what it means? and if i can tweak it or not?  please
>> not,
>> this score was more than the results which showed up...
>>
>> Regards,
>> Gunjan
>>
>> --
>> View this message in context:
>> http://old.nabble.com/Meaning-of-this-error%3A-Failure-to-meet-condition%28s%29-of-required-prohibited-clause%28s%29----tp27058008p27058008.html
>> Sent from the Solr - User mailing list archive at Nabble.com.
>>
>>
> 
> 

-- 
View this message in context: http://old.nabble.com/Meaning-of-this-error%3A-Failure-to-meet-condition%28s%29-of-required-prohibited-clause%28s%29----tp27058008p27071735.html
Sent from the Solr - User mailing list archive at Nabble.com.


Re: Meaning of this error: Failure to meet condition(s) of required/prohibited clause(s)???

Posted by Erick Erickson <er...@gmail.com>.
How are these fields defined in your schema.xml? Note
that String types are indexed without tokenization, so
if <str> is defined as a String field type, that may be
part of your problem (try text type if so).

If this is irrelevant, please show us the relevant parts
of your schema and the query you're submitting...

Erick

On Thu, Jan 7, 2010 at 6:17 AM, gunjan_versata <gu...@gmail.com>wrote:

>
>
> Hi All,
>
> i have a document indexed in solr, which is as follow :
>
> <doc>
> <str name="id">P-E-HE-Philips-32PFL5409-98-Black-32</str>
> <arr name="keywords">
> <str>Philips</str>
> <str>LCD TVs</str>
> </arr>
> <str name="title">
> Philips 32PFL5409-98  32" LCDTV withPixel Plus HD (Black,32)
> </str>
> </doc>
>
> now when i search for lcd tvs, i dont the above doc in search results.. on
> doing explain other, i got the following output..
>
>       "P-E-HE-Philips-32PFL5409-98-Black-32":"
> 0.0 = (NON-MATCH) Failure to meet condition(s) of required/prohibited
> clause(s)
>  0.0 = no match on required clause (((subKeywords:lcd^0.1 |
> keywords:lcd^0.5 | defaultKeywords:lcd | contributors:lcd^0.5 | title:lcd)
> (subKeywords:televis^0.1 | keywords:tvs^0.5 | defaultKeywords:tvs |
> contributors:tvs^0.5 | (title:televis title:tv title:tvs)))~1)
>    0.0 = (NON-MATCH) Failure to match minimum number of optional clauses: 1
>  0.91647065 = (MATCH) max of:
>    0.91647065 = (MATCH) weight(keywords:lcd tvs^0.5 in 40), product of:
>      0.13178125 = queryWeight(keywords:lcd tvs^0.5), product of:
>        0.5 = boost
>        11.127175 = idf(docFreq=34, maxDocs=875476)
>        0.023686381 = queryNorm
>      6.9544845 = (MATCH) fieldWeight(keywords:lcd tvs in 40), product of:
>        1.0 = tf(termFreq(keywords:lcd tvs)=1)
>        11.127175 = idf(docFreq=34, maxDocs=875476)
>        0.625 = fieldNorm(field=keywords, doc=40)
>
> i am not sure of what it means? and if i can tweak it or not?  please not,
> this score was more than the results which showed up...
>
> Regards,
> Gunjan
>
> --
> View this message in context:
> http://old.nabble.com/Meaning-of-this-error%3A-Failure-to-meet-condition%28s%29-of-required-prohibited-clause%28s%29----tp27058008p27058008.html
> Sent from the Solr - User mailing list archive at Nabble.com.
>
>