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
