lucene-solr-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alexandre Rafalovitch <arafa...@gmail.com>
Subject Re: Use function in condition
Date Mon, 05 Sep 2016 09:11:24 GMT
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 <kouicin@yahoo.fr.invalid> 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 <emir.arnautovic@sematext.com>
>  À : 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 <emir.arnautovic@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 <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
View raw message