Hi Emir,
Yes I confirm, it's working. But if I put the same condition in fq the result 
is different (result is correct when I put condition in q).
Thank you.
Regards,Nabil. 

      De : Emir Arnautovic <emir.arnauto...@sematext.com>
 À : solr-user@lucene.apache.org 
 Envoyé le : Lundi 5 septembre 2016 10h30
 Objet : Re: Use function in condition
   
Hi Nabil,

It should work. I've just tested on gettingstarted collection (sample 
that comes with Solr) and this query returns expected results. Here is 
what test query looks like:

http://localhost:8983/solr/gettingstarted/select?q=*:*&fq={!frange 
l=1}or(query($q1),query($q2))&q1=id:adata&q2=id:apple

Can you please doublecheck if your query part returns any results.

Regards,
Emir


On 05.09.2016 09:54, nabil Kouici wrote:
> Hi All,
> Any feedback please.
> Regards,Nabil.
>
>        De : nabil Kouici <koui...@yahoo.fr.INVALID>
>  À : "solr-user@lucene.apache.org" <solr-user@lucene.apache.org>
>  Envoyé le : Vendredi 2 septembre 2016 13h45
>  Objet : Re: Use function in condition
>    
> Hi Emir,
> Thank you for your response.
> Yes your request is working but only if it's function queries.
> If you mix function query with normal query, this will not work. For example:
> fq={!frange 
> l=1}and(query($sub1),or(query($sub2),query($sub3)))&sub1=F3:Active&sub2={!frange
>  u=2000}sum(F3,F4)&sub3={!frange l=3000}sum(F5,F6)
> Regards,Nabil.
>
>        De : Emir Arnautovic <emir.arnauto...@sematext.com>
>  À : solr-user@lucene.apache.org
>  Envoyé le : Lundi 29 août 2016 14h06
>  Objet : Re: Use function in condition
>    
> Hi Nabil,
>
> Can you try following:
>
> fq={!frange l=1}and(query($sub1),or(query($sub2),query($sub3)))&sub1={!frange 
> l=1000}sum(F1,F2)&sub2={!frange u=2000}sum(F3,F4)&sub3={!frange 
> l=3000}sum(F5,F6)
>
> Thanks,
> Emir
>
> On 29.08.2016 11:50, nabil Kouici wrote:
>> Hi solr users,
>> I'm still not able to find a solution either with function query :(
>> My need is simple, I'd like to execute these combined filters :
>> (Sum F1 and F2 greater than 1000) AND ( (sum F3 and F4 lower than 2000) OR 
>> (sum F5 and F6 greater then 3000) )
>> Could you please help me to translate these conditions to solr syntaxe.
>> Regards,Nabil.
>>
>>          De : Emir Arnautovic <emir.arnauto...@sematext.com>
>>    À : solr-user@lucene.apache.org
>>    Envoyé le : Jeudi 25 août 2016 16h51
>>    Objet : Re: Use function in condition
>>      
>> Hi Nabil,
>>
>> You have limited set functions, but there are logical functions: or,
>> and, not and you have query function so can do more complex queries:
>>
>> fq={!frange l=1}and(query($sub1),termfreq(field3, 300))sub1={!frange 
>> l=100}sum(field1,field2)
>>
>> And will return 1 for doc matching both function terms.
>>
>> It would be much simpler if Solr supported relational functions: gt, lt, eq.
>>
>> Hope this gives you ideas how to proceed.
>>
>> Emir
>>
>> On 25.08.2016 12:06, nabil Kouici wrote:
>>> Hi Emir,Thank you for your replay. I've tested the function range query and 
>>> this is solving 50% my need. The problem is I'm not able to use it with 
>>> other conditions. For exemple:
>>> fq={!frange l=100}sum(field1,field2)  and field3:200
>>>
>>> or
>>> fq=({!frange l=100}sum(field1,field2))  and (field3:200)
>>>
>>> This is giving me an exception:org.apache.solr.search.SyntaxError: 
>>> Unexpected text after function: AND Field3:200
>>> I know that I can use multiple fq but the problem is I can have complexe 
>>> filter like (cond1 OR cond2 AND cond3)
>>> Could you please help.
>>> Regards,Nabil.
>>>
>>>            De : Emir Arnautovic <emir.arnauto...@sematext.com>
>>>      À : solr-user@lucene.apache.org
>>>      Envoyé le : Mercredi 17 août 2016 17h08
>>>      Objet : Re: Use function in condition
>>>        
>>> Hi Nabil,
>>>
>>> You can use frange queries, e.g. you can use fq={!frange
>>> l=100}sum(field1,field2) to filter doc with sum greater than 100.
>>>
>>> Regards,
>>> Emir
>>>
>>>
>>> On 17.08.2016 16:26, nabil Kouici wrote:
>>>> Hi,
>>>> Is it possible to use functions (function query 
>>>> https://cwiki.apache.org/confluence/display/solr/Function+Queries) in q or 
>>>> fq parameters to build a complex search expression.
>>>> For exemple, take only documents that sum(field1,field2)> 100. Another 
>>>> exemple: if(test,value1,value2):vallue3
>>>> Regards,Nabil.

-- 
Monitoring * Alerting * Anomaly Detection * Centralized Log Management
Solr & Elasticsearch Support * http://sematext.com/



   

Reply via email to