Ah yes, this is a common gotcha, its because the bq is recursively applied
to itself

So you have to change that bq to have itself a bq that's empty

bq={!edismax bq='' mm=80% qf=Email^100 v=$q}

v is simply the 'q' for this subquery, by passing v=$q you explicitly set
it to whatever was passed in q

Best
-Doug

On Wed, Nov 28, 2018 at 4:30 PM Tanya Bompi <tanya.bo...@gmail.com> wrote:

> Hi Doug,
>   Thank you for your response. I tried the above boost syntax but I get
> the following error of going into an infinite loop. In the wiki page I
> couldnt figure out what the 'v' parameter is. (
> https://lucene.apache.org/solr/guide/7_0/the-extended-dismax-query-parser.html).
> I will try the analysis tool as well.
>
> "bq":"{!edismax mm=80% qf=ContactEmail^100 v=$q}"}},
> "error":{ "metadata":[ "error-class",
> "org.apache.solr.common.SolrException", "root-error-class",
> "org.apache.solr.search.SyntaxError"], 
> "msg":"org.apache.solr.search.SyntaxError:
> Infinite Recursion detected parsing query
>
> Thank you,
> Tanya
>
> On Wed, Nov 28, 2018 at 12:36 PM Doug Turnbull <
> dturnb...@opensourceconnections.com> wrote:
>
>> The terminology we use at my company is you want to *gate* the effect of
>> boost to only very precise scenarios. A lot of this depends on how your
>> Email and Phone numbers are being tokenized/analyzed (ie what analyzer is
>> on the field type), because you really only want to boost when you have
>> high confidence email/phone number matches. You may actually have more of
>> a
>> matching problem than a relevance problem. You can debug this in the Solr
>> analysis screen.
>>
>> Another tool you can use is putting a mm on just the boost query. This
>> gates that specific boost based on how many query terms match that field.
>> It's good for doing a kind of poor-man's entity recognition (how much does
>> the query correspond to one kind of entity)
>>
>> Something like
>>
>> bq={!edismax mm=80% qf=Email^100 v=$q} <--Boost emails only when there's a
>> strong match, 80% of query terms match the email
>>
>> alongside your main qf with the combined field
>>
>> qf=text_all
>>
>> There's a lot of strategies, and it usually involves a combination of
>> query
>> and analysis work (and lots of good test data to prove your approach
>> works)
>>
>> (shameless plug is we cover a lot of this in Solr relevance training
>> https://opensourceconnections.com/events/training/)
>>
>> Hope that helps
>> -Doug
>>
>>
>> On Wed, Nov 28, 2018 at 3:21 PM Tanya Bompi <tanya.bo...@gmail.com>
>> wrote:
>>
>> > Hi,
>> >   I have an index that is built using a combination of fields (Title,
>> > Description, Phone, Email etc). I have an indexed all the fields and the
>> > combined copy field as well.
>> > In the query that i have which is a combination of all the fields as
>> input
>> > (Title + Description+Phone+email).
>> > There are some samples where if the Email/Phone has a match the
>> resulting
>> > Solr score is lower still. I have tried boosting the fields say Email^2
>> but
>> > that results in any token in the input query being matched against the
>> > email which results in erroneous results.
>> >
>> > How can i formulate a query that I can boost for Email to match against
>> > Email with a boost along with the combined field match against the
>> combined
>> > field index.
>> >
>> > Thanks,
>> > Tanya
>> >
>> --
>> CTO, OpenSource Connections
>> Author, Relevant Search
>> http://o19s.com/doug
>>
> --
CTO, OpenSource Connections
Author, Relevant Search
http://o19s.com/doug

Reply via email to