UP
i am facing the same behaviour and I agree with Andrea observations, any
view on this from the dev community ?

Regards

On Wed, Nov 29, 2017 at 4:36 PM, Andrea Gazzarini <[email protected]> wrote:

> Hi guys,
> any suggestion about this?
>
> Best,
> Andres
>
> On 27 Nov 2017 5:54 pm, "Andrea Gazzarini" <[email protected]> wrote:
>
>> Hi,
>> I'm using Solr 7.1.0 (but I guess all what I'm going to describe is the
>> same in the previous versions) and I have to implement a simple product
>> name suggester.
>>
>> I started focusing on the BlendedInfixLookup which could fit my needs,
>> but I have some doubts, even after looking at the code, about how it
>> works.  I have several questions:
>>
>> *1) org.apache.lucene.search.su
>> <http://org.apache.lucene.search.su>ggest.Lookup*
>> The formula in the BlendedInfixSuggester documentation says "final weight
>> = 1 - (0.10*position)" so it would suggest to me a float or a double
>> datatype. Instead, the "value" instance member of the Lookup class, which
>> should hold the computed weight, it's a long.
>> I realised that because, in a scenario where the weight field in my
>> schema always returns 1, the final computed weight is always 0 or 1,
>> therefore loosing the precision when the actual result of the formula above
>> is between 0 and 1 (excluded).
>>
>> 2) *Position role within the **BlendedInfixSuggester*
>> If I write more than one term in the query, let's say
>>
>> "Mini Bar Fridge"
>>
>> I would expect in the results something like (note that
>> allTermsRequired=true and the schema weight field always returns 1000)
>>
>> - *Mini Bar Fridge* something
>> - *Mini Bar Fridge* something else
>> - *Mini Bar* something *Fridge*
>> - *Mini Bar* something else *Fridge*
>> - *Mini* something *Bar Fridge*
>> ...
>>
>> Instead I see this:
>>
>> - *Mini Bar* something *Fridge*
>> - *Mini Bar* something else *Fridge*
>> - *Mini Bar Fridge* something
>> - *Mini Bar Fridge* something else
>> - *Mini* something *Bar Fridge*
>> ...
>>
>> After having a look at the suggester code (BlendedInfixSuggester.createC
>> oefficient), I see that the component takes in account only one
>> position, which is the lowest position (among the three matching terms)
>> within the term vector ("mini" in the example above) so all the suggestions
>> above have the same weight
>>
>> score = weight * (1 - 0.10 * position) = 1000 * (1 - 0.10 * 0) = 1000
>>
>> Is that the expected behaviour?
>>
>> Many thanks in advance
>> Andrea
>>
>


-- 
--------------------------

Benedetti Alessandro
Visiting card - http://about.me/alessandro_benedetti
Blog - http://alexbenedetti.blogspot.co.uk

"Tyger, tyger burning bright
In the forests of the night,
What immortal hand or eye
Could frame thy fearful symmetry?"

William Blake - Songs of Experience -1794 England

Reply via email to