Java 类org.apache.lucene.search.similarities.ClassicSimilarity 实例源码

项目:elasticsearch_my    文件:MoreLikeThisQuery.java   
@Override
public Query rewrite(IndexReader reader) throws IOException {
    Query rewritten = super.rewrite(reader);
    if (rewritten != this) {
        return rewritten;
    }
    XMoreLikeThis mlt = new XMoreLikeThis(reader, similarity == null ? new ClassicSimilarity() : similarity);

    mlt.setFieldNames(moreLikeFields);
    mlt.setAnalyzer(analyzer);
    mlt.setMinTermFreq(minTermFrequency);
    mlt.setMinDocFreq(minDocFreq);
    mlt.setMaxDocFreq(maxDocFreq);
    mlt.setMaxQueryTerms(maxQueryTerms);
    mlt.setMinWordLen(minWordLen);
    mlt.setMaxWordLen(maxWordLen);
    mlt.setStopWords(stopWords);
    mlt.setBoost(boostTerms);
    mlt.setBoostFactor(boostTermsFactor);

    if (this.unlikeText != null || this.unlikeFields != null) {
        handleUnlike(mlt, this.unlikeText, this.unlikeFields);
    }

    return createQuery(mlt);
}
项目:elasticsearch_my    文件:TermVectorsFilter.java   
public TermVectorsFilter(Fields termVectorsByField, Fields topLevelFields, Set<String> selectedFields, @Nullable AggregatedDfs dfs) {
    this.fields = termVectorsByField;
    this.topLevelFields = topLevelFields;
    this.selectedFields = selectedFields;

    this.dfs = dfs;
    this.scoreTerms = new HashMap<>();
    this.similarity = new ClassicSimilarity();
}
项目:elasticsearch-learning-to-rank    文件:LtrQueryTests.java   
@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);
}
项目:elasticsearch-plugin-bundle    文件:LuceneTestCase.java   
public static IndexSearcher newSearcher(IndexReader r, boolean wrapWithAssertions) {
    Random random = new Random();

    int threads = 0;
    final ThreadPoolExecutor ex;
    if (random.nextBoolean()) {
        ex = null;
    } else {
        threads = randomIntBetween(random, 1, 8);
        ex = new ThreadPoolExecutor(threads, threads, 0L, TimeUnit.MILLISECONDS,
                new LinkedBlockingQueue<Runnable>(),
                new NamedThreadFactory("LuceneTestCase"));
    }
    if (ex != null) {
        r.addReaderClosedListener(new IndexReader.ReaderClosedListener() {
            @Override
            public void onClose(IndexReader reader) {
                shutdownExecutorService(ex);
            }
        });
    }
    IndexSearcher ret;
    if (wrapWithAssertions) {
        ret = random.nextBoolean()
                ? new AssertingIndexSearcher(random, r, ex)
                : new AssertingIndexSearcher(random, r.getContext(), ex);
    } else {
        ret = random.nextBoolean()
                ? new IndexSearcher(r, ex)
                : new IndexSearcher(r.getContext(), ex);
    }
    ret.setSimilarity(new ClassicSimilarity());
    return ret;

}
项目:lumongo    文件:DocFreq.java   
public DocFreq(IndexReader indexReader, String field) {
    this.indexReader = indexReader;
    this.field = field;
    this.docFreqMap = new HashMap<>();
    this.similarity = new ClassicSimilarity();
    this.numDocs = indexReader.numDocs();
}
项目:lumongo    文件:LumongoSegment.java   
private PerFieldSimilarityWrapper getSimilarity(final QueryWithFilters queryWithFilters) {
    return new PerFieldSimilarityWrapper() {
        @Override
        public Similarity get(String name) {

            AnalyzerSettings analyzerSettings = indexConfig.getAnalyzerSettingsForIndexField(name);
            AnalyzerSettings.Similarity similarity = AnalyzerSettings.Similarity.BM25;
            if (analyzerSettings != null) {
                similarity = analyzerSettings.getSimilarity();
            }

            AnalyzerSettings.Similarity fieldSimilarityOverride = queryWithFilters.getFieldSimilarityOverride(name);
            if (fieldSimilarityOverride != null) {
                similarity = fieldSimilarityOverride;
            }

            if (AnalyzerSettings.Similarity.TFIDF.equals(similarity)) {
                return new ClassicSimilarity();
            }
            else if (AnalyzerSettings.Similarity.BM25.equals(similarity)) {
                return new BM25Similarity();
            }
            else if (AnalyzerSettings.Similarity.CONSTANT.equals(similarity)) {
                return new ConstantSimilarity();
            }
            else if (AnalyzerSettings.Similarity.TF.equals(similarity)) {
                return new TFSimilarity();
            }
            else {
                throw new RuntimeException("Unknown similarity type <" + similarity + ">");
            }
        }
    };
}
项目:elasticsearch_my    文件:ClassicSimilarityProvider.java   
/**
 * {@inheritDoc}
 */
@Override
public ClassicSimilarity get() {
    return similarity;
}
项目:elasticsearch_my    文件:XMoreLikeThis.java   
/**
 * Constructor requiring an IndexReader.
 */
public XMoreLikeThis(IndexReader ir) {
    this(ir, new ClassicSimilarity());
}
项目:elasticsearch_my    文件:BlendedTermQueryTests.java   
public IndexSearcher setSimilarity(IndexSearcher searcher) {
    Similarity similarity = random().nextBoolean() ? new BM25Similarity() : new ClassicSimilarity();
    searcher.setSimilarity(similarity);
    return searcher;
}
项目:elasticsearch_my    文件:SimilarityServiceTests.java   
public void testOverrideDefaultSimilarity() {
    Settings settings = Settings.builder().put("index.similarity.default.type", "classic").build();
    IndexSettings indexSettings = IndexSettingsModule.newIndexSettings("test", settings);
    SimilarityService service = new SimilarityService(indexSettings, Collections.emptyMap());
    assertTrue(service.getDefaultSimilarity() instanceof ClassicSimilarity);
}
项目:elasticsearch_my    文件:SimilarityTests.java   
public void testResolveDefaultSimilarities() {
    SimilarityService similarityService = createIndex("foo").similarityService();
    assertThat(similarityService.getSimilarity("classic").get(), instanceOf(ClassicSimilarity.class));
    assertThat(similarityService.getSimilarity("BM25").get(), instanceOf(BM25Similarity.class));
    assertThat(similarityService.getSimilarity("default"), equalTo(null));
}
项目:RelevancyFeedback    文件:RelevancyFeedback.java   
/**
 * Constructor requiring an IndexReader.
 */
public RelevancyFeedback(IndexReader ir) {
    this(ir, new ClassicSimilarity());
}
项目:SolrPlugins    文件:MoreLikeThis.java   
/**
 * Constructor requiring an IndexReader.
 */
public MoreLikeThis(IndexReader ir) {
    this(ir, new ClassicSimilarity());
}