org.apache.lucene.search.similarities.PerFieldSimilarityWrapper Java Examples
The following examples show how to use
org.apache.lucene.search.similarities.PerFieldSimilarityWrapper.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: TestTaxonomyFacetCounts.java From lucene-solr with Apache License 2.0 | 6 votes |
public void testReallyNoNormsForDrillDown() throws Exception { Directory dir = newDirectory(); Directory taxoDir = newDirectory(); IndexWriterConfig iwc = newIndexWriterConfig(new MockAnalyzer(random())); iwc.setSimilarity(new PerFieldSimilarityWrapper() { final Similarity sim = new ClassicSimilarity(); @Override public Similarity get(String name) { assertEquals("field", name); return sim; } }); TaxonomyWriter taxoWriter = new DirectoryTaxonomyWriter(taxoDir, IndexWriterConfig.OpenMode.CREATE); RandomIndexWriter writer = new RandomIndexWriter(random(), dir, iwc); FacetsConfig config = new FacetsConfig(); Document doc = new Document(); doc.add(newTextField("field", "text", Field.Store.NO)); doc.add(new FacetField("a", "path")); writer.addDocument(config.build(taxoWriter, doc)); writer.close(); IOUtils.close(taxoWriter, dir, taxoDir); }
Example #2
Source File: TestSimilarityProvider.java From lucene-solr with Apache License 2.0 | 6 votes |
@Override public void setUp() throws Exception { super.setUp(); directory = newDirectory(); PerFieldSimilarityWrapper sim = new ExampleSimilarityProvider(); IndexWriterConfig iwc = newIndexWriterConfig(new MockAnalyzer(random())).setSimilarity(sim); RandomIndexWriter iw = new RandomIndexWriter(random(), directory, iwc); Document doc = new Document(); Field field = newTextField("foo", "", Field.Store.NO); doc.add(field); Field field2 = newTextField("bar", "", Field.Store.NO); doc.add(field2); field.setStringValue("quick brown fox"); field2.setStringValue("quick brown fox"); iw.addDocument(doc); field.setStringValue("jumps over lazy brown dog"); field2.setStringValue("jumps over lazy brown dog"); iw.addDocument(doc); reader = iw.getReader(); iw.close(); searcher = newSearcher(reader); searcher.setSimilarity(sim); }
Example #3
Source File: TestBulkSchemaAPI.java From lucene-solr with Apache License 2.0 | 6 votes |
/** * whitebox checks the Similarity for the specified field according to {@link SolrCore#getLatestSchema} * * Executes each of the specified Similarity-accepting validators. */ @SafeVarargs @SuppressWarnings({"unchecked", "varargs"}) private static <T extends Similarity> void assertFieldSimilarity(String fieldname, Class<T> expected, Consumer<T>... validators) { CoreContainer cc = jetty.getCoreContainer(); try (SolrCore core = cc.getCore("collection1")) { SimilarityFactory simfac = core.getLatestSchema().getSimilarityFactory(); assertNotNull(simfac); assertTrue("test only works with SchemaSimilarityFactory", simfac instanceof SchemaSimilarityFactory); Similarity mainSim = core.getLatestSchema().getSimilarity(); assertNotNull(mainSim); // sanity check simfac vs sim in use - also verify infom called on simfac, otherwise exception assertEquals(mainSim, simfac.getSimilarity()); assertTrue("test only works with PerFieldSimilarityWrapper, SchemaSimilarityFactory redefined?", mainSim instanceof PerFieldSimilarityWrapper); Similarity fieldSim = ((PerFieldSimilarityWrapper)mainSim).get(fieldname); assertEquals("wrong sim for field=" + fieldname, expected, fieldSim.getClass()); Arrays.asList(validators).forEach(v -> v.accept((T)fieldSim)); } }
Example #4
Source File: IDFValueSource.java From lucene-solr with Apache License 2.0 | 5 votes |
static TFIDFSimilarity asTFIDF(Similarity sim, String field) { while (sim instanceof PerFieldSimilarityWrapper) { sim = ((PerFieldSimilarityWrapper)sim).get(field); } if (sim instanceof TFIDFSimilarity) { return (TFIDFSimilarity)sim; } else { return null; } }
Example #5
Source File: BaseSimilarityTestCase.java From lucene-solr with Apache License 2.0 | 5 votes |
/** returns the similarity in use for the field */ protected Similarity getSimilarity(String field) { Similarity sim = null; try { sim = h.getCore().withSearcher(IndexSearcher::getSimilarity); } catch (IOException e) { throw new RuntimeException(e); } while (sim instanceof PerFieldSimilarityWrapper) { sim = ((PerFieldSimilarityWrapper)sim).get(field); } return sim; }
Example #6
Source File: LumongoSegment.java From lumongo with Apache License 2.0 | 5 votes |
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 + ">"); } } }; }