lucene-solr-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From nabil Kouici <koui...@yahoo.fr.INVALID>
Subject Re: Use function in condition
Date Mon, 05 Sep 2016 07:54:32 GMT
Hi All,
Any feedback please.
Regards,Nabil.

      De : nabil Kouici <kouicin@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.arnautovic@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.arnautovic@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.arnautovic@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/



  

   
Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message