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/