Skip to content

Commit

Permalink
HSEARCH-4142 Change the scope of ToDocumentIdentifierValueConverter
Browse files Browse the repository at this point in the history
So that it may be used also to convert back the document identifiers
  • Loading branch information
fax4ever committed Mar 1, 2021
1 parent 57bfe20 commit 78b46b0
Show file tree
Hide file tree
Showing 30 changed files with 123 additions and 122 deletions.
Expand Up @@ -33,8 +33,8 @@
import org.hibernate.search.backend.elasticsearch.lowlevel.index.settings.impl.IndexSettings;
import org.hibernate.search.backend.elasticsearch.types.dsl.ElasticsearchIndexFieldTypeFactory;
import org.hibernate.search.backend.elasticsearch.types.dsl.provider.impl.ElasticsearchIndexFieldTypeFactoryProvider;
import org.hibernate.search.engine.backend.types.converter.spi.ToDocumentIdentifierValueConverter;
import org.hibernate.search.engine.backend.types.converter.spi.StringToDocumentIdentifierValueConverter;
import org.hibernate.search.engine.backend.types.converter.spi.DocumentIdentifierValueConverter;
import org.hibernate.search.engine.backend.types.converter.spi.StringDocumentIdentifierValueConverter;
import org.hibernate.search.engine.backend.document.model.dsl.spi.IndexSchemaRootNodeBuilder;
import org.hibernate.search.engine.mapper.mapping.building.spi.IndexFieldTypeDefaultsProvider;
import org.hibernate.search.engine.reporting.spi.EventContexts;
Expand All @@ -54,7 +54,7 @@ public class ElasticsearchIndexSchemaRootNodeBuilder extends AbstractElasticsear
private final DynamicType defaultDynamicType;

private RoutingType routing = null;
private ToDocumentIdentifierValueConverter<?> idDslConverter;
private DocumentIdentifierValueConverter<?> idDslConverter;

public ElasticsearchIndexSchemaRootNodeBuilder(ElasticsearchIndexFieldTypeFactoryProvider typeFactoryProvider,
EventContext indexEventContext,
Expand Down Expand Up @@ -87,7 +87,7 @@ public void explicitRouting() {
}

@Override
public void idDslConverter(ToDocumentIdentifierValueConverter<?> idDslConverter) {
public void idDslConverter(DocumentIdentifierValueConverter<?> idDslConverter) {
this.idDslConverter = idDslConverter;
}

Expand Down Expand Up @@ -152,7 +152,7 @@ public void collect(String absoluteNamedPredicatePath, ElasticsearchIndexSchemaN
mappedTypeName,
analysisDefinitionRegistry, customIndexSettings,
mapping,
idDslConverter == null ? new StringToDocumentIdentifierValueConverter() : idDslConverter,
idDslConverter == null ? new StringDocumentIdentifierValueConverter() : idDslConverter,
rootNode, staticFields, fieldTemplates, namedPredicateNodes
);
}
Expand Down
Expand Up @@ -24,7 +24,7 @@
import org.hibernate.search.engine.backend.document.model.spi.IndexFieldInclusion;
import org.hibernate.search.engine.backend.metamodel.IndexDescriptor;
import org.hibernate.search.engine.backend.metamodel.IndexFieldDescriptor;
import org.hibernate.search.engine.backend.types.converter.spi.ToDocumentIdentifierValueConverter;
import org.hibernate.search.engine.backend.types.converter.spi.DocumentIdentifierValueConverter;
import org.hibernate.search.engine.reporting.spi.EventContexts;
import org.hibernate.search.util.common.impl.CollectionHelper;
import org.hibernate.search.util.common.reporting.EventContext;
Expand All @@ -39,7 +39,7 @@ public class ElasticsearchIndexModel implements IndexDescriptor, ElasticsearchSe
private final IndexSettings customIndexSettings;
private final RootTypeMapping mapping;

private final ToDocumentIdentifierValueConverter<?> idDslConverter;
private final DocumentIdentifierValueConverter<?> idDslConverter;
private final ElasticsearchIndexSchemaObjectNode rootNode;
private final Map<String, AbstractElasticsearchIndexSchemaFieldNode> staticFields;
private final List<IndexFieldDescriptor> includedStaticFields;
Expand All @@ -50,7 +50,7 @@ public class ElasticsearchIndexModel implements IndexDescriptor, ElasticsearchSe
public ElasticsearchIndexModel(IndexNames names,
String mappedTypeName,
ElasticsearchAnalysisDefinitionRegistry analysisDefinitionRegistry, IndexSettings customIndexSettings,
RootTypeMapping mapping, ToDocumentIdentifierValueConverter<?> idDslConverter,
RootTypeMapping mapping, DocumentIdentifierValueConverter<?> idDslConverter,
ElasticsearchIndexSchemaObjectNode rootNode,
Map<String, AbstractElasticsearchIndexSchemaFieldNode> staticFields,
List<AbstractElasticsearchIndexSchemaFieldTemplate<?>> fieldTemplates,
Expand Down Expand Up @@ -87,7 +87,7 @@ public String mappedTypeName() {
}

@Override
public ToDocumentIdentifierValueConverter<?> idDslConverter() {
public DocumentIdentifierValueConverter<?> idDslConverter() {
return idDslConverter;
}

Expand Down
Expand Up @@ -19,7 +19,7 @@
import org.hibernate.search.backend.elasticsearch.index.ElasticsearchIndexManager;
import org.hibernate.search.backend.elasticsearch.util.spi.URLEncodedString;
import org.hibernate.search.engine.backend.scope.spi.IndexScopeBuilder;
import org.hibernate.search.engine.backend.types.converter.spi.ToDocumentIdentifierValueConverter;
import org.hibernate.search.engine.backend.types.converter.spi.DocumentIdentifierValueConverter;
import org.hibernate.search.engine.logging.spi.AggregationKeyFormatter;
import org.hibernate.search.engine.search.aggregation.AggregationKey;
import org.hibernate.search.engine.search.aggregation.SearchAggregation;
Expand Down Expand Up @@ -367,8 +367,8 @@ SearchException inconsistentConfigurationForFieldForSearch(String absoluteFieldP

@Message(id = ID_OFFSET + 49,
value = "Inconsistent configuration for the identifier in a search query across multiple indexes: converter differs: '%1$s' vs. '%2$s'.")
SearchException inconsistentConfigurationForIdentifierForSearch(ToDocumentIdentifierValueConverter<?> component1,
ToDocumentIdentifierValueConverter<?> component2, @Param EventContext context);
SearchException inconsistentConfigurationForIdentifierForSearch(DocumentIdentifierValueConverter<?> component1,
DocumentIdentifierValueConverter<?> component2, @Param EventContext context);

@Message(id = ID_OFFSET + 53,
value = "Full-text features (analysis, fuzziness) are not supported for fields of this type.")
Expand Down
Expand Up @@ -24,8 +24,8 @@
import org.hibernate.search.backend.elasticsearch.search.impl.ElasticsearchSearchFieldContext;
import org.hibernate.search.backend.elasticsearch.search.impl.ElasticsearchSearchIndexContext;
import org.hibernate.search.backend.elasticsearch.search.impl.ElasticsearchSearchIndexesContext;
import org.hibernate.search.engine.backend.types.converter.spi.StringToDocumentIdentifierValueConverter;
import org.hibernate.search.engine.backend.types.converter.spi.ToDocumentIdentifierValueConverter;
import org.hibernate.search.engine.backend.types.converter.spi.DocumentIdentifierValueConverter;
import org.hibernate.search.engine.backend.types.converter.spi.StringDocumentIdentifierValueConverter;
import org.hibernate.search.engine.reporting.spi.EventContexts;
import org.hibernate.search.engine.search.common.ValueConvert;
import org.hibernate.search.util.common.SearchException;
Expand All @@ -36,8 +36,8 @@ public class ElasticsearchScopeSearchIndexesContext implements ElasticsearchSear

private static final Log log = LoggerFactory.make( Log.class, MethodHandles.lookup() );

private static final StringToDocumentIdentifierValueConverter RAW_ID_CONVERTER =
new StringToDocumentIdentifierValueConverter();
private static final StringDocumentIdentifierValueConverter RAW_ID_CONVERTER =
new StringDocumentIdentifierValueConverter();

private final Set<ElasticsearchIndexModel> indexModels;
private final Set<String> hibernateSearchIndexNames;
Expand Down Expand Up @@ -70,13 +70,13 @@ public Map<String, ElasticsearchSearchIndexContext> mappedTypeNameToIndex() {
}

@Override
public ToDocumentIdentifierValueConverter<?> idDslConverter(ValueConvert valueConvert) {
public DocumentIdentifierValueConverter<?> idDslConverter(ValueConvert valueConvert) {
if ( ValueConvert.NO.equals( valueConvert ) ) {
return RAW_ID_CONVERTER;
}
ToDocumentIdentifierValueConverter<?> converter = null;
DocumentIdentifierValueConverter<?> converter = null;
for ( ElasticsearchIndexModel indexModel : indexModels ) {
ToDocumentIdentifierValueConverter<?> converterForIndex = indexModel.idDslConverter();
DocumentIdentifierValueConverter<?> converterForIndex = indexModel.idDslConverter();
if ( converter == null ) {
converter = converterForIndex;
}
Expand Down
Expand Up @@ -7,7 +7,7 @@
package org.hibernate.search.backend.elasticsearch.search.impl;

import org.hibernate.search.backend.elasticsearch.index.layout.impl.IndexNames;
import org.hibernate.search.engine.backend.types.converter.spi.ToDocumentIdentifierValueConverter;
import org.hibernate.search.engine.backend.types.converter.spi.DocumentIdentifierValueConverter;

/**
* Information about an index targeted by search,
Expand All @@ -19,5 +19,5 @@ public interface ElasticsearchSearchIndexContext {

String mappedTypeName();

ToDocumentIdentifierValueConverter<?> idDslConverter();
DocumentIdentifierValueConverter<?> idDslConverter();
}
Expand Up @@ -11,7 +11,7 @@
import java.util.Set;
import org.hibernate.search.backend.elasticsearch.document.model.impl.ElasticsearchIndexSchemaNamedPredicateNode;

import org.hibernate.search.engine.backend.types.converter.spi.ToDocumentIdentifierValueConverter;
import org.hibernate.search.engine.backend.types.converter.spi.DocumentIdentifierValueConverter;
import org.hibernate.search.engine.search.common.ValueConvert;

/**
Expand All @@ -26,7 +26,7 @@ public interface ElasticsearchSearchIndexesContext {

Map<String, ElasticsearchSearchIndexContext> mappedTypeNameToIndex();

ToDocumentIdentifierValueConverter<?> idDslConverter(ValueConvert valueConvert);
DocumentIdentifierValueConverter<?> idDslConverter(ValueConvert valueConvert);

ElasticsearchSearchFieldContext field(String absoluteFieldPath);

Expand Down
Expand Up @@ -14,7 +14,7 @@
import org.hibernate.search.backend.elasticsearch.gson.impl.JsonObjectAccessor;
import org.hibernate.search.backend.elasticsearch.search.impl.ElasticsearchSearchContext;
import org.hibernate.search.engine.backend.types.converter.runtime.spi.ToDocumentIdentifierValueConvertContext;
import org.hibernate.search.engine.backend.types.converter.spi.ToDocumentIdentifierValueConverter;
import org.hibernate.search.engine.backend.types.converter.spi.DocumentIdentifierValueConverter;
import org.hibernate.search.engine.search.common.ValueConvert;
import org.hibernate.search.engine.search.predicate.SearchPredicate;
import org.hibernate.search.engine.search.predicate.spi.MatchIdPredicateBuilder;
Expand Down Expand Up @@ -92,11 +92,11 @@ static class Builder extends AbstractElasticsearchPredicate.AbstractBuilder impl

@Override
public void value(Object value, ValueConvert valueConvert) {
ToDocumentIdentifierValueConverter<?> dslToDocumentIdConverter =
DocumentIdentifierValueConverter<?> dslToDocumentIdConverter =
searchContext.indexes().idDslConverter( valueConvert );
ToDocumentIdentifierValueConvertContext toDocumentIdentifierValueConvertContext =
searchContext.toDocumentIdentifierValueConvertContext();
values.add( dslToDocumentIdConverter.convertUnknown( value, toDocumentIdentifierValueConvertContext ) );
values.add( dslToDocumentIdConverter.convertToDocumentUnknown( value, toDocumentIdentifierValueConvertContext ) );
}

@Override
Expand Down
Expand Up @@ -31,7 +31,7 @@
import org.hibernate.search.backend.elasticsearch.work.result.impl.ExplainResult;
import org.hibernate.search.engine.backend.session.spi.BackendSessionContext;
import org.hibernate.search.engine.backend.types.converter.runtime.spi.ToDocumentIdentifierValueConvertContext;
import org.hibernate.search.engine.backend.types.converter.spi.ToDocumentIdentifierValueConverter;
import org.hibernate.search.engine.backend.types.converter.spi.DocumentIdentifierValueConverter;
import org.hibernate.search.engine.common.dsl.spi.DslExtensionState;
import org.hibernate.search.engine.search.loading.spi.SearchLoadingContext;
import org.hibernate.search.engine.search.query.SearchQueryExtension;
Expand Down Expand Up @@ -275,10 +275,10 @@ private JsonObject doExplain(ElasticsearchSearchIndexContext index, Object id) {
}

private URLEncodedString toElasticsearchId(ElasticsearchSearchIndexContext index, Object id) {
ToDocumentIdentifierValueConverter<?> converter = index.idDslConverter();
DocumentIdentifierValueConverter<?> converter = index.idDslConverter();
ToDocumentIdentifierValueConvertContext convertContext =
searchContext.toDocumentIdentifierValueConvertContext();
String documentId = converter.convertUnknown( id, convertContext );
String documentId = converter.convertToDocumentUnknown( id, convertContext );
return URLEncodedString.fromString( searchContext.documentIdHelper()
.toElasticsearchId( sessionContext.tenantIdentifier(), documentId ) );
}
Expand Down
Expand Up @@ -28,8 +28,8 @@
import org.hibernate.search.backend.lucene.types.dsl.impl.LuceneIndexFieldTypeFactoryImpl;
import org.hibernate.search.engine.backend.document.model.dsl.spi.IndexSchemaBuildContext;
import org.hibernate.search.engine.backend.types.ObjectStructure;
import org.hibernate.search.engine.backend.types.converter.spi.ToDocumentIdentifierValueConverter;
import org.hibernate.search.engine.backend.types.converter.spi.StringToDocumentIdentifierValueConverter;
import org.hibernate.search.engine.backend.types.converter.spi.DocumentIdentifierValueConverter;
import org.hibernate.search.engine.backend.types.converter.spi.StringDocumentIdentifierValueConverter;
import org.hibernate.search.engine.backend.document.model.dsl.spi.IndexSchemaRootNodeBuilder;
import org.hibernate.search.engine.mapper.mapping.building.spi.IndexFieldTypeDefaultsProvider;
import org.hibernate.search.engine.reporting.spi.EventContexts;
Expand All @@ -42,7 +42,7 @@ public class LuceneIndexSchemaRootNodeBuilder extends AbstractLuceneIndexSchemaO
private final String mappedTypeName;
private final LuceneAnalysisDefinitionRegistry analysisDefinitionRegistry;

private ToDocumentIdentifierValueConverter<?> idDslConverter;
private DocumentIdentifierValueConverter<?> idDslConverter;

public LuceneIndexSchemaRootNodeBuilder(EventContext indexEventContext,
String mappedTypeName, LuceneAnalysisDefinitionRegistry analysisDefinitionRegistry) {
Expand All @@ -67,7 +67,7 @@ public void explicitRouting() {
}

@Override
public void idDslConverter(ToDocumentIdentifierValueConverter<?> idDslConverter) {
public void idDslConverter(DocumentIdentifierValueConverter<?> idDslConverter) {
this.idDslConverter = idDslConverter;
}

Expand Down Expand Up @@ -124,7 +124,7 @@ public void collect(LuceneIndexSchemaValueFieldTemplate template) {
return new LuceneIndexModel(
indexName,
mappedTypeName,
idDslConverter == null ? new StringToDocumentIdentifierValueConverter() : idDslConverter,
idDslConverter == null ? new StringDocumentIdentifierValueConverter() : idDslConverter,
rootNode, staticFields, fieldTemplates, namedPredicateNodes, hasNestedDocument[0]
);
}
Expand Down
Expand Up @@ -19,7 +19,7 @@
import org.hibernate.search.engine.backend.document.model.spi.IndexFieldInclusion;
import org.hibernate.search.engine.backend.metamodel.IndexDescriptor;
import org.hibernate.search.engine.backend.metamodel.IndexFieldDescriptor;
import org.hibernate.search.engine.backend.types.converter.spi.ToDocumentIdentifierValueConverter;
import org.hibernate.search.engine.backend.types.converter.spi.DocumentIdentifierValueConverter;
import org.hibernate.search.engine.reporting.spi.EventContexts;
import org.hibernate.search.util.common.impl.CollectionHelper;
import org.hibernate.search.util.common.reporting.EventContext;
Expand All @@ -34,7 +34,7 @@ public class LuceneIndexModel implements AutoCloseable, IndexDescriptor {

private final String mappedTypeName;

private final ToDocumentIdentifierValueConverter<?> idDslConverter;
private final DocumentIdentifierValueConverter<?> idDslConverter;

private final LuceneIndexSchemaObjectNode rootNode;
private final Map<String, AbstractLuceneIndexSchemaFieldNode> staticFields;
Expand All @@ -49,7 +49,7 @@ public class LuceneIndexModel implements AutoCloseable, IndexDescriptor {

public LuceneIndexModel(String indexName,
String mappedTypeName,
ToDocumentIdentifierValueConverter<?> idDslConverter,
DocumentIdentifierValueConverter<?> idDslConverter,
LuceneIndexSchemaObjectNode rootNode,
Map<String, AbstractLuceneIndexSchemaFieldNode> staticFields,
List<AbstractLuceneIndexSchemaFieldTemplate<?>> fieldTemplates,
Expand Down Expand Up @@ -112,7 +112,7 @@ public EventContext getEventContext() {
return EventContexts.fromIndexName( indexName );
}

public ToDocumentIdentifierValueConverter<?> idDslConverter() {
public DocumentIdentifierValueConverter<?> idDslConverter() {
return idDslConverter;
}

Expand Down
Expand Up @@ -20,7 +20,7 @@
import org.hibernate.search.backend.lucene.scope.model.impl.LuceneScopeIndexManagerContext;
import org.hibernate.search.engine.backend.metamodel.IndexDescriptor;
import org.hibernate.search.engine.backend.schema.management.spi.IndexSchemaManager;
import org.hibernate.search.engine.backend.types.converter.spi.ToDocumentIdentifierValueConverter;
import org.hibernate.search.engine.backend.types.converter.spi.DocumentIdentifierValueConverter;
import org.hibernate.search.engine.backend.work.execution.DocumentCommitStrategy;
import org.hibernate.search.engine.backend.index.IndexManager;
import org.hibernate.search.engine.backend.index.spi.IndexManagerStartContext;
Expand Down Expand Up @@ -156,7 +156,7 @@ public LuceneIndexModel model() {
}

@Override
public ToDocumentIdentifierValueConverter<?> idDslConverter() {
public DocumentIdentifierValueConverter<?> idDslConverter() {
return model.idDslConverter();
}

Expand Down
Expand Up @@ -22,7 +22,7 @@

import org.hibernate.search.backend.lucene.index.LuceneIndexManager;
import org.hibernate.search.engine.backend.scope.spi.IndexScopeBuilder;
import org.hibernate.search.engine.backend.types.converter.spi.ToDocumentIdentifierValueConverter;
import org.hibernate.search.engine.backend.types.converter.spi.DocumentIdentifierValueConverter;
import org.hibernate.search.engine.logging.spi.AggregationKeyFormatter;
import org.hibernate.search.engine.search.common.SortMode;
import org.hibernate.search.engine.search.predicate.SearchPredicate;
Expand Down Expand Up @@ -331,8 +331,8 @@ SearchException unableToDeleteAllEntriesFromIndex(Query query, String causeMessa

@Message(id = ID_OFFSET + 68,
value = "Inconsistent configuration for the identifier in a search query across multiple indexes: converter differs: '%1$s' vs. '%2$s'.")
SearchException inconsistentConfigurationForIdentifierForSearch(ToDocumentIdentifierValueConverter<?> component1,
ToDocumentIdentifierValueConverter<?> component2, @Param EventContext context);
SearchException inconsistentConfigurationForIdentifierForSearch(DocumentIdentifierValueConverter<?> component1,
DocumentIdentifierValueConverter<?> component2, @Param EventContext context);

@Message(id = ID_OFFSET + 69,
value = "Unable to explain search query: %1$s")
Expand Down

0 comments on commit 78b46b0

Please sign in to comment.