Re: Use function in condition
Hi Alexandre, Yes you are right. I miss q parameter. It's giving the same result now. Thank you for your help. Regards,Nabil. De : Alexandre Rafalovitch À : solr-user Envoyé le : Lundi 5 septembre 2016 11h11 Objet : Re: Use function in condition I don't see any 'q' in the second query. Can you add q=*:* and see what happens. Regards, Alex. Newsletter and resources for Solr beginners and intermediates: http://www.solr-start.com/ On 5 September 2016 at 15:57, nabil Kouici wrote: > Hi Emir, > In the first query I'm getting 2 documents (correct) > http://localhost:8983/solr/COL1/select?fq=F3:Active&indent=on&q={!frange%20l=1}or(query($q1),query($q2))&q1=F1:0732695731&q2=F2:1040167165&rows=0&wt=json > > In the second document I've 0 document as result > http://localhost:8983/solr/COL1/select?indent=on&fq={!frange%20l=1}or(query($q1),query($q2))&q1=F1:0732695731&q2=F2:1040167165&rows=0&wt=json > > > Regards,Nabil. > > De : Emir Arnautovic > À : solr-user@lucene.apache.org > Envoyé le : Lundi 5 septembre 2016 10h48 > Objet : Re: Use function in condition > > Hi Nabil, > > Can you please share exact queries that are executed and results. > > Thanks, > Emir > > > On 05.09.2016 10:43, nabil Kouici wrote: >> 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 >> À : 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 >>> À : "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 >>> À : 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 >>>> À : 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
Re: Use function in condition
I don't see any 'q' in the second query. Can you add q=*:* and see what happens. Regards, Alex. Newsletter and resources for Solr beginners and intermediates: http://www.solr-start.com/ On 5 September 2016 at 15:57, nabil Kouici wrote: > Hi Emir, > In the first query I'm getting 2 documents (correct) > http://localhost:8983/solr/COL1/select?fq=F3:Active&indent=on&q={!frange%20l=1}or(query($q1),query($q2))&q1=F1:0732695731&q2=F2:1040167165&rows=0&wt=json > > In the second document I've 0 document as result > http://localhost:8983/solr/COL1/select?indent=on&fq={!frange%20l=1}or(query($q1),query($q2))&q1=F1:0732695731&q2=F2:1040167165&rows=0&wt=json > > > Regards,Nabil. > > De : Emir Arnautovic > À : solr-user@lucene.apache.org > Envoyé le : Lundi 5 septembre 2016 10h48 > Objet : Re: Use function in condition > > Hi Nabil, > > Can you please share exact queries that are executed and results. > > Thanks, > Emir > > > On 05.09.2016 10:43, nabil Kouici wrote: >> 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 >> À : 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 >>>À : "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 >>>À : 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 >>>> À : 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. >>>>
Re: Use function in condition
Hi Emir, In the first query I'm getting 2 documents (correct) http://localhost:8983/solr/COL1/select?fq=F3:Active&indent=on&q={!frange%20l=1}or(query($q1),query($q2))&q1=F1:0732695731&q2=F2:1040167165&rows=0&wt=json In the second document I've 0 document as result http://localhost:8983/solr/COL1/select?indent=on&fq={!frange%20l=1}or(query($q1),query($q2))&q1=F1:0732695731&q2=F2:1040167165&rows=0&wt=json Regards,Nabil. De : Emir Arnautovic À : solr-user@lucene.apache.org Envoyé le : Lundi 5 septembre 2016 10h48 Objet : Re: Use function in condition Hi Nabil, Can you please share exact queries that are executed and results. Thanks, Emir On 05.09.2016 10:43, nabil Kouici wrote: > 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 > À : 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 >> À : "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 >> À : 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 >>> À : 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 proble
Re: Use function in condition
Hi Nabil, Can you please share exact queries that are executed and results. Thanks, Emir On 05.09.2016 10:43, nabil Kouici wrote: 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 À : 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 À : "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 À : 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 À : 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 À : 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/
Re: Use function in condition
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 À : 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 > À : "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 > À : 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 >> À : 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 >>> À : 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/
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 À : "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 À : 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 À : 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 À : 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/
Re: Use function in condition
Hi All, Any feedback please. Regards,Nabil. De : nabil Kouici À : "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 À : 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 > À : 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 >> À : 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/
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 À : 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 > À : 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 >> À : 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/
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 À : 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 À : 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/
Re: Use function in condition
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 À : 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 > À : 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/
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 À : 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/
Re: Use function in condition
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 À : 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/
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/