Feel free to file an issue with a proposal; probably to Lucene in this case.
On Tue, May 22, 2018 at 7:42 AM Alessandro Benedetti < [email protected]> wrote: > 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. >>> createCoefficient), 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 > -- Lucene/Solr Search Committer, Consultant, Developer, Author, Speaker LinkedIn: http://linkedin.com/in/davidwsmiley | Book: http://www.solrenterprisesearchserver.com
