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:25:49 GMT
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

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