lucene-solr-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From William Bell <billnb...@gmail.com>
Subject Re: Issue with if() statement
Date Fri, 01 Jan 2016 21:40:19 GMT
Forgot last bit:

fq={!switch case.gt.0=$state1
                             default=$state
                             func=len($state1)}</str>


On Fri, Jan 1, 2016 at 2:39 PM, William Bell <billnbell@gmail.com> wrote:

> Maybe we can add function value on a switch?
>
> fq={!switch case.gt.0
>                              default=$state
>                              func=len($state1)}</str>
>
>
>
> We could add: gt, lt, eq, ge, le ?
>
> gt: greater than
> lt: less than
> eq: equal
> ge: greater than or equal
> le: less than or equal
>
> ??
>
>
>
> On Fri, Jan 1, 2016 at 2:25 PM, William Bell <billnbell@gmail.com> wrote:
>
>> This all started with me trying to use {!switch} to indicate with CO or
>> NY to use. if we pass state1, that is supposed to take precedence, but if
>> nothing is returned, then use state.... Make sense now?
>>
>> I could not find a way to check for strlen($state1). Which is what I want
>> in the case statement. This just does not work...
>> Something like the following is what I am trying to do:
>>
>>
>> fq={!switch case."anything"=$state1
>>                             default=$state
>>                              v=$state1}</str>
>>
>> So I tried the following to set all 50 states:
>>
>>
>> fq={!switch case.all='*:*'
>>                              case.CO='state:CO'
>>                              case.NY='state:NY'
>>                              v=$state1}</str>
>>
>>
>> Obviously Oregon (OR!) is an issue, and it won't work at all plus
>>
>>
>>
>> On Fri, Jan 1, 2016 at 2:15 PM, William Bell <billnbell@gmail.com> wrote:
>>
>>> Another weirdness:
>>>
>>>
>>> http://localhost:8983/solr/providersearch/select?wt=json&state=state:CO&state1=state:NY&fl=*&q=*:*&tt=$state1&fq={!lucene%20v=$tt}
>>> <http://localhost:8983/solr/providersearch/select?wt=json&state=state:CO&state1=state:NY&fl=*&q=*:*&tt=$state1&fq=%7B!lucene%20v=$tt%7D>
>>>
>>> That does not return anything.
>>>
>>> But if I set v=$state1 I get results.
>>>
>>> Can I not set equivalent variables?
>>>
>>>
>>>
>>> On Fri, Jan 1, 2016 at 2:07 PM, William Bell <billnbell@gmail.com>
>>> wrote:
>>>
>>>> Example.
>>>>
>>>>
>>>> http://localhost:8983/solr/providersearch/select?wt=json&state=state:%22CO%22&state1=state:%22NY%22&fl=ss,score&q=*:*&fq={!lucene%20v=$state1}
>>>> <http://localhost:8983/solr/providersearch/select?wt=json&state=state:%22CO%22&state1=state:%22NY%22&fl=ss,score&q=*:*&fq=%7B!lucene%20v=$state1%7D>
>>>>
>>>> This return 236,000
>>>>
>>>>
>>>> http://localhost:8983/solr/providersearch/select?wt=json&state=state:%22CO%22&state1=state:%22NY%22&fl=ss,score&q=*:*&fq={!lucene%20v=$state}
>>>> <http://localhost:8983/solr/providersearch/select?wt=json&state=state:%22CO%22&state1=state:%22NY%22&fl=ss,score&q=*:*&fq=%7B!lucene%20v=$state%7D>
>>>>
>>>> This returns 10,000
>>>>
>>>> I want to put an IF statement around which v to use.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> On Fri, Jan 1, 2016 at 1:52 PM, William Bell <billnbell@gmail.com>
>>>> wrote:
>>>>
>>>>> Sure.
>>>>>
>>>>> If the state:NY returns results filter by state:NY, if it does not,
>>>>> then use state:CO. If we have results in NY, use it, otherwise use CO.
>>>>>
>>>>> OK?
>>>>>
>>>>> On Fri, Jan 1, 2016 at 1:15 PM, Upayavira <uv@odoko.co.uk> wrote:
>>>>>
>>>>>>
>>>>>>
>>>>>> On Thu, Dec 31, 2015, at 11:50 PM, William Bell wrote:
>>>>>> > We are getting weird results with if(exists(a),b,c). We are
getting
>>>>>> b+c!!
>>>>>> >
>>>>>> >
>>>>>> http://localhost:8983/solr/providersearch/select?q=*:*&wt=json&state=state:%22CO%22&state1=state:%22NY%22&fq=if(exists(query($state1)),{!lucene%20v=$state1},{!lucene%20v=$state})
>>>>>> <http://localhost:8983/solr/providersearch/select?q=*:*&wt=json&state=state:%22CO%22&state1=state:%22NY%22&fq=if(exists(query($state1)),%7B!lucene%20v=$state1%7D,%7B!lucene%20v=$state%7D)>
>>>>>> >
>>>>>> > I am getting NY and CO!
>>>>>> >
>>>>>> > I only want $state1, which is NY.
>>>>>> >
>>>>>> > Any other ways to craft this?
>>>>>>
>>>>>> Does this work at all?
>>>>>>
>>>>>> The if() function is a function query that can be used to sort, boost
>>>>>> and as calculated fields. I haven't seen them used in filtering.
>>>>>>
>>>>>> Also, the query() function does *not* do a query, it just says "what
>>>>>> would this document score for this query?"
>>>>>>
>>>>>> Can you describe in English what you are trying to do?
>>>>>>
>>>>>> Upayavira
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Bill Bell
>>>>> billnbell@gmail.com
>>>>> cell 720-256-8076
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Bill Bell
>>>> billnbell@gmail.com
>>>> cell 720-256-8076
>>>>
>>>
>>>
>>>
>>> --
>>> Bill Bell
>>> billnbell@gmail.com
>>> cell 720-256-8076
>>>
>>
>>
>>
>> --
>> Bill Bell
>> billnbell@gmail.com
>> cell 720-256-8076
>>
>
>
>
> --
> Bill Bell
> billnbell@gmail.com
> cell 720-256-8076
>



-- 
Bill Bell
billnbell@gmail.com
cell 720-256-8076

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