public IndexedTypeIdentifier getTypeIdentifier() { return binding.getDocumentBuilder().getTypeIdentifier(); }
public IndexedTypeIdentifier getTypeIdentifier() { return binding.getDocumentBuilder().getTypeIdentifier(); }
private AddLuceneWork createAddLuceneWork(String tenantIdentifier, Object entity, InstanceInitializer sessionInitializer, ConversionContext conversionContext, Serializable id, EntityIndexBinding entityIndexBinding) { DocumentBuilderIndexedEntity docBuilder = entityIndexBinding.getDocumentBuilder(); String idInString = idInString( conversionContext, id, docBuilder.getTypeIdentifier(), docBuilder ); // depending on the complexity of the object graph going to be indexed it's possible // that we hit the database several times during work construction. return docBuilder.createAddWork( tenantIdentifier, docBuilder.getTypeIdentifier(), entity, id, idInString, sessionInitializer, 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() ); } }
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() ); } }
@Override protected Set<IndexManager> getIndexManagers(EntityIndexBinding binding) { Set<IndexManager> indexManagers = super.getIndexManagers( binding ); for ( IndexManager indexManager : indexManagers ) { if ( !( indexManager instanceof ElasticsearchIndexManager ) ) { throw LOG.cannotRunEsQueryTargetingEntityIndexedWithNonEsIndexManager( binding.getDocumentBuilder().getTypeIdentifier(), rawSearchPayload.toString() ); } } return indexManagers; }
@Override protected Set<IndexManager> getIndexManagers(EntityIndexBinding binding) { Set<IndexManager> indexManagers = super.getIndexManagers( binding ); for ( IndexManager indexManager : indexManagers ) { if ( !( indexManager instanceof ElasticsearchIndexManager ) ) { throw LOG.cannotRunEsQueryTargetingEntityIndexedWithNonEsIndexManager( binding.getDocumentBuilder().getTypeIdentifier(), rawSearchPayload.toString() ); } } return indexManagers; }
private String[] getAllCompatibleFieldNames(DocumentBuilderIndexedEntity documentBuilder) { Collection<DocumentFieldMetadata> allFieldMetadata = documentBuilder.getTypeMetadata().getAllDocumentFieldMetadata(); List<String> fieldNames = new ArrayList<String>( allFieldMetadata.size() ); for ( DocumentFieldMetadata fieldMetadata : allFieldMetadata ) { boolean hasTermVector = fieldMetadata.getTermVector() != Field.TermVector.NO; boolean isStored = fieldMetadata.getStore() != Store.NO; boolean isIdOrEmbeddedId = fieldMetadata.isId() || fieldMetadata.isIdInEmbedded(); if ( ( hasTermVector || isStored ) && !isIdOrEmbeddedId ) { fieldNames.add( fieldMetadata.getAbsoluteName() ); } } if ( fieldNames.size() == 0 ) { throw log.noFieldCompatibleForMoreLikeThis( documentBuilder.getTypeIdentifier() ); } return fieldNames.toArray( new String[fieldNames.size()] ); }
private String[] getAllCompatibleFieldNames(DocumentBuilderIndexedEntity documentBuilder) { Collection<DocumentFieldMetadata> allFieldMetadata = documentBuilder.getTypeMetadata().getAllDocumentFieldMetadata(); List<String> fieldNames = new ArrayList<String>( allFieldMetadata.size() ); for ( DocumentFieldMetadata fieldMetadata : allFieldMetadata ) { boolean hasTermVector = fieldMetadata.getTermVector() != Field.TermVector.NO; boolean isStored = fieldMetadata.getStore() != Store.NO; boolean isIdOrEmbeddedId = fieldMetadata.isId() || fieldMetadata.isIdInEmbedded(); if ( ( hasTermVector || isStored ) && !isIdOrEmbeddedId ) { fieldNames.add( fieldMetadata.getAbsoluteName() ); } } if ( fieldNames.size() == 0 ) { throw log.noFieldCompatibleForMoreLikeThis( documentBuilder.getTypeIdentifier() ); } return fieldNames.toArray( new String[fieldNames.size()] ); }
public String objectToString(String fieldName, FieldBridge bridge, Object value, ConversionContext conversionContext) { if ( fieldName == null ) { throw new AssertionFailure( "Field name should not be null" ); } if ( bridge == null ) { throw new AssertionFailure( "Field bridge should not be null" ); } final Class<? extends FieldBridge> bridgeClass = bridge.getClass(); if ( TwoWayFieldBridge.class.isAssignableFrom( bridgeClass ) ) { return objectToString( (TwoWayFieldBridge) bridge, fieldName, value, conversionContext ); } else if ( StringBridge.class.isAssignableFrom( bridgeClass ) ) { return objectToString( (StringBridge) bridge, fieldName, value, conversionContext ); } else { throw log.fieldBridgeNotTwoWay( bridgeClass, fieldName, getTypeIdentifier().getName() ); } }
@Override protected Set<IndexManager> getIndexManagers(EntityIndexBinding binding) { Set<IndexManager> indexManagers = super.getIndexManagers( binding ); for ( IndexManager indexManager : indexManagers ) { if ( !( indexManager instanceof DirectoryBasedIndexManager ) ) { throw log.cannotRunLuceneQueryTargetingEntityIndexedWithNonLuceneIndexManager( binding.getDocumentBuilder().getTypeIdentifier(), luceneQuery.toString() ); } } return indexManagers; }
@Override protected Set<IndexManager> getIndexManagers(EntityIndexBinding binding) { Set<IndexManager> indexManagers = super.getIndexManagers( binding ); for ( IndexManager indexManager : indexManagers ) { if ( !( indexManager instanceof DirectoryBasedIndexManager ) ) { throw log.cannotRunLuceneQueryTargetingEntityIndexedWithNonLuceneIndexManager( binding.getDocumentBuilder().getTypeIdentifier(), luceneQuery.toString() ); } } return indexManagers; }
/** * Return a query that will return docs like the passed lucene document ID. * @return a query that will return docs like the passed lucene document ID. */ public Query createQuery() { try { documentNumber = getLuceneDocumentIdFromIdAsTermOrNull( documentBuilder ); return maybeExcludeComparedEntity( createQuery( retrieveTerms() ) ); } catch (IOException e) { throw log.ioExceptionOnIndexOfEntity( e, documentBuilder.getTypeIdentifier() ); } }
/** * Return a query that will return docs like the passed lucene document ID. * @return a query that will return docs like the passed lucene document ID. */ public Query createQuery() { try { documentNumber = getLuceneDocumentIdFromIdAsTermOrNull( documentBuilder ); return maybeExcludeComparedEntity( createQuery( retrieveTerms() ) ); } catch (IOException e) { throw log.ioExceptionOnIndexOfEntity( e, documentBuilder.getTypeIdentifier() ); } }
public String objectToString(String fieldName, Object value, ConversionContext conversionContext) { if ( fieldName == null ) { throw new AssertionFailure( "Field name should not be null" ); } final FieldBridge bridge = fieldName.equals( getIdFieldName() ) ? getIdBridge() : getBridge( getTypeMetadata(), fieldName ); if ( bridge != null ) { return objectToString( fieldName, bridge, value, conversionContext ); } throw new SearchException( "Unable to find field " + fieldName + " in " + getTypeIdentifier().getName() ); }
public String objectToString(String fieldName, Object value, ConversionContext conversionContext) { if ( fieldName == null ) { throw new AssertionFailure( "Field name should not be null" ); } final FieldBridge bridge = fieldName.equals( getIdFieldName() ) ? getIdBridge() : getBridge( getTypeMetadata(), fieldName ); if ( bridge != null ) { return objectToString( fieldName, bridge, value, conversionContext ); } throw new SearchException( "Unable to find field " + fieldName + " in " + getTypeIdentifier().getName() ); }
public static Serializable getDocumentId(DocumentBuilderIndexedEntity builderIndexedEntity, Document document, ConversionContext conversionContext) { final TwoWayFieldBridge fieldBridge = builderIndexedEntity.getIdBridge(); final String fieldName = builderIndexedEntity.getIdFieldName(); try { return (Serializable) conversionContext .setConvertedTypeId( builderIndexedEntity.getTypeIdentifier() ) .pushIdentifierProperty() .twoWayConversionContext( fieldBridge ) .get( fieldName, document ); } finally { conversionContext.popProperty(); } }
public static Serializable getDocumentId(DocumentBuilderIndexedEntity builderIndexedEntity, Document document, ConversionContext conversionContext) { final TwoWayFieldBridge fieldBridge = builderIndexedEntity.getIdBridge(); final String fieldName = builderIndexedEntity.getIdFieldName(); try { return (Serializable) conversionContext .setConvertedTypeId( builderIndexedEntity.getTypeIdentifier() ) .pushIdentifierProperty() .twoWayConversionContext( fieldBridge ) .get( fieldName, document ); } finally { conversionContext.popProperty(); } }
@Override public IndexMetadata translate(URLEncodedString indexName, Collection<EntityIndexBinding> descriptors, ExecutionOptions executionOptions) { IndexMetadata indexMetadata = new IndexMetadata(); indexMetadata.setName( indexName ); ElasticsearchIndexSettingsBuilder settingsBuilder = new ElasticsearchIndexSettingsBuilder(); for ( EntityIndexBinding descriptor : descriptors ) { String typeName = descriptor.getDocumentBuilder().getTypeIdentifier().getName(); TypeMapping mapping = translate( descriptor, settingsBuilder, executionOptions ); indexMetadata.putMapping( typeName, mapping ); } indexMetadata.setSettings( settingsBuilder.build() ); return indexMetadata; }
@Override public IndexMetadata translate(URLEncodedString indexName, Collection<EntityIndexBinding> descriptors, ExecutionOptions executionOptions) { IndexMetadata indexMetadata = new IndexMetadata(); indexMetadata.setName( indexName ); ElasticsearchIndexSettingsBuilder settingsBuilder = new ElasticsearchIndexSettingsBuilder(); for ( EntityIndexBinding descriptor : descriptors ) { String typeName = descriptor.getDocumentBuilder().getTypeIdentifier().getName(); TypeMapping mapping = translate( descriptor, settingsBuilder, executionOptions ); indexMetadata.putMapping( typeName, mapping ); } indexMetadata.setSettings( settingsBuilder.build() ); return indexMetadata; }