ok i like the logic, you can do much more. i think this should do it for me:

         (-organisations:["" TO *] -roles:["" TO *]) (+organisations:(150 42) 
+roles:(174 72))


i want to use this in fq and i need to set the operator to OR. My q.op is AND 
but I need OR in fq. I have read about ofq but that is for putting OR between 
multiple fq. Can I set the operator for fq?

The statement should find all docs without organisations and roles or those 
that have at least one roles and organisations entry. these fields are 
multivalued.

-----Original-Nachricht----- 
> Von: "Erick Erickson" <erickerick...@gmail.com> 
> An: solr-user@lucene.apache.org 
> Datum: 19/02/2014 04:09 
> Betreff: Re: query parameters 
> 
> Solr/Lucene query language is NOT strictly boolean, see
> Chris's excellent blog here:
> http://searchhub.org/dev/2011/12/28/why-not-and-or-and-not/
> 
> Best,
> Erick
> 
> 
> On Tue, Feb 18, 2014 at 11:54 AM, Andreas Owen <a...@conx.ch> wrote:
> 
> > I tried it in solr admin query and it showed me all the docs without a
> > value
> > in ogranisations and roles. It didn't matter if i used a base term, isn't
> > that give through the q-parameter?
> >
> > -----Original Message-----
> > From: Raymond Wiker [mailto:rwi...@gmail.com]
> > Sent: Dienstag, 18. Februar 2014 13:19
> > To: solr-user@lucene.apache.org
> > Subject: Re: query parameters
> >
> > That could be because the second condition does not do what you think it
> > does... have you tried running the second condition separately?
> >
> > You may have to add a "base term" to the second condition, like what you
> > have for the "bq" parameter in your config file; i.e, something like
> >
> > (*:* -organisations:["" TO *] -roles:["" TO *])
> >
> >
> >
> >
> > On Tue, Feb 18, 2014 at 12:16 PM, Andreas Owen <a...@conx.ch> wrote:
> >
> > > It seams that fq doesn't except OR because: (organisations:(150 OR 41)
> > > AND
> > > roles:(174)) OR  (-organisations:["" TO *] AND -roles:["" TO *]) only
> > > returns docs that match the first conditions. it doesn't return any
> > > docs with the empty fields organisations and roles.
> > >
> > > -----Original Message-----
> > > From: Andreas Owen [mailto:a...@conx.ch]
> > > Sent: Montag, 17. Februar 2014 05:08
> > > To: solr-user@lucene.apache.org
> > > Subject: query parameters
> > >
> > >
> > > in solrconfig of my solr 4.3 i have a userdefined requestHandler. i
> > > would like to use fq to force the following conditions:
> > >    1: organisations is empty and roles is empty
> > >    2: organisations contains one of the commadelimited list in
> > > variable $org
> > >    3: roles contains one of the commadelimited list in variable $r
> > >    4: rule 2 and 3
> > >
> > > snipet of what i got (havent checked out if the is a "in" operator
> > > like in sql for the list value)
> > >
> > > <lst name="defaults">
> > >        <str name="echoParams">explicit</str>
> > >        <int name="rows">10</int>
> > >        <str name="defType">edismax</str>
> > >            <str name="synonyms">true</str>
> > >            <str name="qf">plain_text^10 editorschoice^200
> > >                 title^20 h_*^14
> > >                 tags^10 thema^15 inhaltstyp^6 breadcrumb^6 doctype^10
> > >                 contentmanager^5 links^5
> > >                 last_modified^5 url^5
> > >            </str>
> > >            <str name="fq">(organisations='' roles='') or
> > > (organisations=$org roles=$r) or (organisations='' roles=$r) or
> > > (organisations=$org roles='')</str>
> > >            <str name="bq">(expiration:[NOW TO *] OR (*:*
> > > -expiration:*))^6</str>  <!-- tested: now or newer or empty gets small
> > > boost -->
> > >            <str name="bf">div(clicks,max(displays,1))^8</str> <!--
> > > tested
> > > -->
> > >
> > >
> > >
> > >
> > >
> > >
> >
> >



Reply via email to