@Before public void setupIndex() throws IOException { dirUnderTest = newDirectory(); List<Similarity> sims = Arrays.asList( new ClassicSimilarity(), new SweetSpotSimilarity(), // extends Classic new BM25Similarity(), new LMDirichletSimilarity(), new BooleanSimilarity(), new LMJelinekMercerSimilarity(0.2F), new AxiomaticF3LOG(0.5F, 10), new DFISimilarity(new IndependenceChiSquared()), new DFRSimilarity(new BasicModelBE(), new AfterEffectB(), new NormalizationH1()), new IBSimilarity(new DistributionLL(), new LambdaDF(), new NormalizationH3()) ); similarity = sims.get(random().nextInt(sims.size())); indexWriterUnderTest = new RandomIndexWriter(random(), dirUnderTest, newIndexWriterConfig().setSimilarity(similarity)); for (int i = 0; i < docs.length; i++) { Document doc = new Document(); doc.add(newStringField("id", "" + i, Field.Store.YES)); doc.add(newField("field", docs[i], Store.YES)); indexWriterUnderTest.addDocument(doc); } indexWriterUnderTest.commit(); indexWriterUnderTest.forceMerge(1); indexWriterUnderTest.flush(); indexReaderUnderTest = indexWriterUnderTest.getReader(); searcherUnderTest = newSearcher(indexReaderUnderTest); searcherUnderTest.setSimilarity(similarity); }
/** jelinek-mercer with parameters */ public void testParameters() throws Exception { Similarity sim = getSimilarity("text_params"); assertEquals(LMJelinekMercerSimilarity.class, sim.getClass()); LMJelinekMercerSimilarity lm = (LMJelinekMercerSimilarity) sim; assertEquals(0.4f, lm.getLambda(), 0.01f); }
public LMJelinekMercerSimilarityProvider(String name, Settings settings, Settings indexSettings) { super(name); float lambda = settings.getAsFloat("lambda", 0.1f); this.similarity = new LMJelinekMercerSimilarity(lambda); }
@Inject public LMJelinekMercerSimilarityProvider(@Assisted String name, @Assisted Settings settings) { super(name); float lambda = settings.getAsFloat("lambda", 0.1f); this.similarity = new LMJelinekMercerSimilarity(lambda); }
@Override public Similarity getSimilarity() { LMJelinekMercerSimilarity sim = new LMJelinekMercerSimilarity(lambda); sim.setDiscountOverlaps(discountOverlaps); return sim; }
/** jelinek-mercer with default parameters */ public void test() throws Exception { assertEquals(LMJelinekMercerSimilarity.class, getSimilarity("text").getClass()); }