@Deprecated public EntityIndexBinding getSafeIndexBindingForEntity(Class<?> entityType) { if ( entityType == null ) { throw log.nullIsInvalidIndexedType(); } EntityIndexBinding entityIndexBinding = getIndexBindings().get( entityType ); if ( entityIndexBinding == null ) { throw log.notAnIndexedType( entityType.getName() ); } return entityIndexBinding; }
@Override public boolean hasProperty(Class<?> entityType, String[] propertyPath) { EntityIndexBinding indexBinding = searchFactory.getIndexBindings().get(entityType); if (indexBinding != null) { ResolvedProperty resolvedProperty = resolveProperty(indexBinding, propertyPath); if (resolvedProperty != null) { return true; } } return super.hasProperty(entityType, propertyPath); }
private String objectIdInString(IndexedTypeIdentifier typeKey, Serializable id, ConversionContext conversionContext) { EntityIndexBinding indexBindingForEntity = typesRegistry.get( typeKey ); if ( indexBindingForEntity == null ) { throw new SearchException( "Unable to find entity type metadata while deserializing: " + typeKey.getName() ); } DocumentBuilderIndexedEntity documentBuilder = indexBindingForEntity.getDocumentBuilder(); return documentBuilder.objectToString( documentBuilder.getIdFieldName(), id, conversionContext ); }
public MoreLikeThisBuilder( DocumentBuilderIndexedEntity documentBuilder, ExtendedSearchIntegrator searchIntegrator ) { this.documentBuilder = documentBuilder; Similarity configuredSimilarity = searchIntegrator.getIndexBindings().get( documentBuilder.getTypeIdentifier() ).getSimilarity(); if ( configuredSimilarity instanceof TFIDFSimilarity ) { this.similarity = (TFIDFSimilarity) configuredSimilarity; } else { throw log.requireTFIDFSimilarity( documentBuilder.getTypeIdentifier() ); } }
/** * Perform a flush, which implies a refresh */ private void flush() { IndexManager indexManager = getExtendedSearchIntegrator().getIndexBindings().get( Level1.class ) .getIndexManagerSelector().all().iterator().next(); indexManager.performOperations( Collections.singletonList( FlushLuceneWork.INSTANCE ), null ); }
@Test public void testSettingIdHashShardingStrategyWithoutNumberOfShards() { Map<String, String> shardingProperties = new HashMap<String, String>(); shardingProperties.put( "hibernate.search.default.sharding_strategy", IdHashShardingStrategy.class.getName() ); logged.expectMessage( "HSEARCH000193", "IdHashShardingStrategy" ); EntityIndexBinding entityIndexBinding = getSearchFactory( shardingProperties ).getIndexBindings().get( Foo.class ); // 1 is assumed for legacy reasons. IMO not setting the number of shards should throw an exception assertTrue( "Without specifying number of shards, 1 should be assumed", entityIndexBinding.getIndexManagerSelector().all().size() == 1 ); }
private DirectoryBasedIndexManager getSingleIndexManager(Class<?> clazz) { SearchIntegrator searchIntegrator = getSearchFactory().unwrap( SearchIntegrator.class ); EntityIndexBinding indexBindingForEntity = searchIntegrator.getIndexBindings().get( clazz ); Set<IndexManager> indexManagers = indexBindingForEntity.getIndexManagerSelector().all(); assertEquals( 1, indexManagers.size() ); return (DirectoryBasedIndexManager) indexManagers.iterator().next(); }
private void assertCorrectDirectoryType(SessionFactory factory, String className) { Session session = factory.openSession(); FullTextSession fullTextSession = Search.getFullTextSession( session ); SearchIntegrator integrator = fullTextSession.getSearchFactory().unwrap( SearchIntegrator.class ); EntityIndexBinding snowIndexBinder = integrator.getIndexBindings().get( SnowStorm.class ); Set<IndexManager> indexManagers = snowIndexBinder.getIndexManagerSelector().all(); assertTrue( "Wrong number of directory providers", indexManagers.size() == 1 ); DirectoryBasedIndexManager indexManager = (DirectoryBasedIndexManager) indexManagers.iterator().next(); Directory directory = indexManager.getDirectoryProvider().getDirectory(); assertEquals( "Wrong directory provider type", className, directory.getClass().getName() ); session.close(); }
private void assertEfficientIndexingUsed(SearchIntegrator searchIntegrator, Class<?> clazz) { DirectoryBasedIndexManager im = (DirectoryBasedIndexManager) searchIntegrator.getIndexBindings().get(clazz) .getIndexManagerSelector().all().iterator().next(); WorkspaceHolder workspaceHolder = im.getWorkspaceHolder(); LuceneBackendResources indexResources = workspaceHolder.getIndexResources(); IndexWorkVisitor<Void, LuceneWorkExecutor> visitor = indexResources.getWorkVisitor(); assertTrue(TestingUtil.extractField(visitor, "updateExecutor") instanceof ByTermUpdateWorkExecutor); } }
private int countDomainsByFullText(String name) throws IOException { String indexName = getExtendedSearchIntegrator().getIndexBindings().get( Domain.class ) .getIndexManagerSelector().all().iterator().next().getIndexName(); return getNumberOfDocumentsInIndexByQuery( indexName, "name", name ); }
private Directory initializeAndExtractDirectory(Cache cache) { SearchIntegrator searchFactory = ComponentRegistryUtils.getSearchIntegrator(cache); DirectoryBasedIndexManager indexManager = (DirectoryBasedIndexManager) searchFactory.getIndexBindings().get(Entity1.class) .getIndexManagerSelector().all().iterator().next(); return indexManager.getDirectoryProvider().getDirectory(); }
@Test(dependsOnMethods="simpleIndexTest") //depends as otherwise the Person index is not initialized yet public void testPropertiesWhereRead() { SearchIntegrator searchFactory = TestQueryHelperFactory.extractSearchFactory(cache); EntityIndexBinding indexBindingForEntity = searchFactory.getIndexBindings().get(Person.class); Set<IndexManager> managers = indexBindingForEntity.getIndexManagerSelector().all(); assertEquals(1, managers.size()); IndexManager manager = managers.iterator().next(); assertNotNull(manager); assertTrue(manager instanceof DirectoryBasedIndexManager); DirectoryBasedIndexManager dbim = (DirectoryBasedIndexManager) manager; assertTrue(dbim.getDirectoryProvider() instanceof RAMDirectoryProvider); }
private void purgeAll(Class<?> entityType, String tenantId) throws IOException { FullTextSession session = Search.getFullTextSession( openSessionWithTenantId( tenantId ) ); session.purgeAll( entityType ); session.flushToIndexes(); session.close(); String indexName = getExtendedSearchIntegrator().getIndexBindings().get( entityType ) .getIndexManagerSelector().all().iterator().next().getIndexName(); assertThat( getNumberOfDocumentsInIndexByQuery( indexName, DocumentBuilderIndexedEntity.TENANT_ID_FIELDNAME, tenantId ) ).isEqualTo( 0 ); }
@Test public void testCorrectNumberOfShardsDetected() { EntityIndexBinding indexBindingForDocument = getExtendedSearchIntegrator().getIndexBindings().get( Document.class ); Set<IndexManager> documentManagers = indexBindingForDocument.getIndexManagerSelector().all(); assertNotNull( documentManagers ); assertEquals( 4, documentManagers.size() ); EntityIndexBinding indexBindingForBooks = getExtendedSearchIntegrator().getIndexBindings().get( Book.class ); Set<IndexManager> bookManagers = indexBindingForBooks.getIndexManagerSelector().all(); assertNotNull( bookManagers ); assertEquals( 2, bookManagers.size() ); }
@Test public void testNothingTest() { SearchIntegrator searchFactory = getSearchFactory().unwrap( SearchIntegrator.class ); EntityIndexBinding indexBindingForEntity = searchFactory.getIndexBindings().get( Clock.class ); Set<IndexManager> indexManagers = indexBindingForEntity.getIndexManagerSelector().all(); assertEquals( 1, indexManagers.size() ); DirectoryBasedIndexManager indexManager = (DirectoryBasedIndexManager) indexManagers.iterator().next(); WorkspaceHolder backend = (WorkspaceHolder) indexManager.getWorkspaceHolder(); assertEquals( 5, backend.getIndexResources().getMaxQueueLength() ); }
@Test @Category(SkipOnElasticsearch.class) // Unused AnalyzerDefs are always bound to the Lucene registry, making this test fail on ES public void shouldContainOnlyTheDefinedAnalyzers() throws Exception { ExtendedSearchIntegrator factory = sfHolder.getSearchFactory(); IndexManagerType indexManagerType = factory.getIndexBindings().get( Sample.class ).getIndexManagerType(); Map<String, AnalyzerReference> analyzerReferences = factory.getIntegration( indexManagerType ).getAnalyzerRegistry().getNamedAnalyzerReferences(); assertThat( analyzerReferences.keySet() ).containsExactlyInAnyOrder( "package-analyzer", "class-analyzer" ); Map<String, AnalyzerReference> normalizerReferences = factory.getIntegration( indexManagerType ).getNormalizerRegistry().getNamedNormalizerReferences(); assertThat( normalizerReferences.keySet() ).containsExactlyInAnyOrder( "package-normalizer", "class-normalizer" ); }
@Test public void testInitialiseDynamicShardsOnStartup() throws Exception { EntityIndexBinding entityIndexBinding = getExtendedSearchIntegrator().getIndexBindings().get( Animal.class ); assertThat( entityIndexBinding.getIndexManagerSelector().all() ).hasSize( 0 ); insert( elephant, spider, bear ); assertThat( entityIndexBinding.getIndexManagerSelector().all() ).hasSize( 2 ); assertThat( getIndexManagersAfterReopening() ).hasSize( 2 ); }
private Integer getParameter(int shard, IndexWriterSetting setting, Class testEntity) { EntityIndexBinding mappingForEntity = getExtendedSearchIntegrator().getIndexBindings().get( testEntity ); DirectoryBasedIndexManager indexManager = (DirectoryBasedIndexManager) getIndexManager( mappingForEntity, shard ); LuceneIndexingParameters luceneIndexingParameters = indexManager.getIndexingParameters(); return luceneIndexingParameters.getIndexParameters().getCurrentValueFor( setting ); }
private Object getUnwrappedBridge(Class<?> clazz, String string, Class<?> expectedBridgeClass) { FieldBridge bridge = sfHolder.getSearchFactory().getIndexBindings().get( clazz ).getDocumentBuilder() .getTypeMetadata().getDocumentFieldMetadataFor( string ).getFieldBridge(); return unwrapBridge( bridge, expectedBridgeClass ); }
@Test @Category(SkipOnElasticsearch.class) // DirectoryProviders and IndexWriterSettings are specific to the Lucene backend public void testShardingSettingsInherited() { EntityIndexBinding binding = getExtendedSearchIntegrator().getIndexBindings().get( Document.class ); assertTrue( getDirectoryProvider( getIndexManager( binding, 0 ) ) instanceof RAMDirectoryProvider ); assertTrue( getDirectoryProvider( getIndexManager( binding, 1 ) ) instanceof FSDirectoryProvider ); assertTrue( getDirectoryProvider( getIndexManager( binding, 2 ) ) instanceof RAMDirectoryProvider ); assertValueIsSet( Document.class, 0, MAX_BUFFERED_DOCS, 58 ); assertValueIsSet( Document.class, 1, MAX_BUFFERED_DOCS, 12 ); }