下面列出了org.apache.lucene.search.similarities.IndependenceChiSquared#org.apache.lucene.search.similarities.DFISimilarity 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Inject
public DFISimilarityProvider(@Assisted String name, @Assisted Settings settings) {
super(name);
boolean discountOverlaps = settings.getAsBoolean("discount_overlaps", true);
Independence measure = parseIndependence(settings);
this.similarity = new DFISimilarity(measure);
this.similarity.setDiscountOverlaps(discountOverlaps);
}
/**
* dfi with no parameters
*/
public void test() throws Exception {
Similarity sim = getSimilarity("text");
assertEquals(DFISimilarity.class, sim.getClass());
DFISimilarity dfi = (DFISimilarity) sim;
assertTrue(dfi.getDiscountOverlaps());
assertTrue(dfi.getIndependence() instanceof IndependenceChiSquared);
}
/**
* dfi with discountOverlaps parameter set to false
*/
public void testParameters() throws Exception {
Similarity sim = getSimilarity("text_params");
assertEquals(DFISimilarity.class, sim.getClass());
DFISimilarity dfr = (DFISimilarity) sim;
assertFalse(dfr.getDiscountOverlaps());
}
@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 BasicModelG(), 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);
}
@Override
public Similarity getSimilarity() {
DFISimilarity sim = new DFISimilarity(independenceMeasure);
sim.setDiscountOverlaps(discountOverlaps);
return sim;
}