Isaac, is there an easy way to recognize this problem? We also index
synonym tokens in the same position (like you do, and I'm sure that our
positions are set correctly). I could test whether the default similarity
factory in solrconfig.xml had any effect (before/after reindexing).

--roman


On Mon, Dec 9, 2013 at 2:42 PM, Isaac Hebsh <isaac.he...@gmail.com> wrote:

> Hi Robert and Manuel.
>
> The DefaultSimilarity indeed sets discountOverlap to true by default.
> BUT, the *factory*, aka DefaultSimilarityFactory, when called by
> IndexSchema (the getSimilarity method), explicitly sets this value to the
> value of its corresponding class member.
> This class member is initialized to be FALSE  when the instance is created
> (like every boolean variable in the world). It should be set when "init"
> method is called. If the parameter is not set in schema.xml, the default is
> true.
>
> Everything seems to be alright, but the issue is that "init" method is NOT
> called, if the similarity is not *explicitly* declared in schema.xml. In
> that case, init method is not called, the discountOverlaps member (of the
> factory class) remains FALSE, and getSimilarity explicitly calls
> setDiscountOverlaps with value of FALSE.
>
> This is very easy to reproduce and debug.
>
>
> On Mon, Dec 9, 2013 at 9:19 PM, Robert Muir <rcm...@gmail.com> wrote:
>
> > no, its turned on by default in the default similarity.
> >
> > as i said, all that is necessary is to fix your analyzer to emit the
> > proper position increments.
> >
> > On Mon, Dec 9, 2013 at 12:27 PM, Manuel Le Normand
> > <manuel.lenorm...@gmail.com> wrote:
> > > In order to set discountOverlaps to true you must have added the
> > > <similarity class="solr.DefaultSimilarityFactory"> to the schema.xml,
> > which
> > > is commented out by default!
> > >
> > > As by default this param is false, the above situation is expected with
> > > correct positioning, as said.
> > >
> > > In order to fix the field norms you'd have to reindex with the
> similarity
> > > class which initializes the param to true.
> > >
> > > Cheers,
> > > Manu
> >
>

Reply via email to