Skip to content

Commit

Permalink
HSEARCH-3571 Refactor ExplainWork for consistency with IndexWork and …
Browse files Browse the repository at this point in the history
…DeleteWork
  • Loading branch information
yrodiere authored and fax4ever committed May 3, 2019
1 parent 50f51f9 commit 61e70eb
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import org.hibernate.search.backend.elasticsearch.util.spi.URLEncodedString;
import org.hibernate.search.backend.elasticsearch.work.builder.impl.CreateIndexWorkBuilder;
import org.hibernate.search.backend.elasticsearch.work.builder.impl.DeleteWorkBuilder;
import org.hibernate.search.backend.elasticsearch.work.builder.impl.ExplainWorkBuilder;
import org.hibernate.search.backend.elasticsearch.work.builder.impl.GetIndexTypeMappingWorkBuilder;
import org.hibernate.search.backend.elasticsearch.work.builder.impl.IndexExistsWorkBuilder;
import org.hibernate.search.backend.elasticsearch.work.builder.impl.IndexWorkBuilder;
Expand All @@ -21,6 +22,7 @@
import org.hibernate.search.backend.elasticsearch.work.impl.DeleteWork;
import org.hibernate.search.backend.elasticsearch.work.impl.ElasticsearchSearchResultExtractor;
import org.hibernate.search.backend.elasticsearch.work.impl.ElasticsearchSearchWork;
import org.hibernate.search.backend.elasticsearch.work.impl.ExplainWork;
import org.hibernate.search.backend.elasticsearch.work.impl.GetIndexTypeMappingWork;
import org.hibernate.search.backend.elasticsearch.work.impl.IndexExistsWork;
import org.hibernate.search.backend.elasticsearch.work.impl.IndexWork;
Expand Down Expand Up @@ -61,6 +63,11 @@ public <T> SearchWorkBuilder<T> search(JsonObject payload,
return ElasticsearchSearchWork.Builder.forElasticsearch6AndBelow( payload, searchResultExtractor );
}

@Override
public ExplainWorkBuilder explain(URLEncodedString indexName, URLEncodedString id, JsonObject payload) {
return ExplainWork.Builder.forElasticsearch67AndBelow( indexName, Paths.DOC, id, payload );
}

@Override
public CreateIndexWorkBuilder createIndex(URLEncodedString indexName) {
return CreateIndexWork.Builder.forElasticsearch67( gsonProvider, indexName, Paths.DOC );
Expand All @@ -80,9 +87,4 @@ public GetIndexTypeMappingWorkBuilder getIndexTypeMapping(URLEncodedString index
public PutIndexMappingWorkBuilder putIndexTypeMapping(URLEncodedString indexName, RootTypeMapping mapping) {
return PutIndexTypeMappingWork.Builder.forElasticsearch67( gsonProvider, indexName, Paths.DOC, mapping );
}

@Override
protected URLEncodedString getTypeKeyword() {
return Paths.DOC;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ public CountWorkBuilder count(Set<URLEncodedString> indexNames) {

@Override
public ExplainWorkBuilder explain(URLEncodedString indexName, URLEncodedString id, JsonObject payload) {
return new ExplainWork.Builder( indexName, getTypeKeyword(), id, payload );
return ExplainWork.Builder.forElasticsearch7AndAbove( indexName, id, payload );
}

@Override
Expand Down Expand Up @@ -182,8 +182,4 @@ public WaitForIndexStatusWorkBuilder waitForIndexStatusWork(URLEncodedString ind
return new WaitForIndexStatusWork.Builder( indexName, requiredStatus, timeout );
}

protected URLEncodedString getTypeKeyword() {
return Paths._DOC;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,17 @@ public static class Builder
private final URLEncodedString id;
private final JsonObject payload;

public Builder(URLEncodedString indexName, URLEncodedString typeName, URLEncodedString id, JsonObject payload) {
public static Builder forElasticsearch67AndBelow(URLEncodedString indexName, URLEncodedString typeName,
URLEncodedString id, JsonObject payload) {
return new Builder( indexName, typeName, id, payload );
}

public static Builder forElasticsearch7AndAbove(URLEncodedString indexName,
URLEncodedString id, JsonObject payload) {
return new Builder( indexName, null, id, payload );
}

private Builder(URLEncodedString indexName, URLEncodedString typeName, URLEncodedString id, JsonObject payload) {
super( null, DefaultElasticsearchRequestSuccessAssessor.INSTANCE );
this.indexName = indexName;
this.typeName = typeName;
Expand All @@ -52,7 +62,7 @@ protected ElasticsearchRequest buildRequest() {
ElasticsearchRequest.Builder builder =
ElasticsearchRequest.get()
.pathComponent( indexName )
.pathComponent( typeName )
.pathComponent( typeName != null ? typeName : Paths._DOC ) // _doc for ES7+
.pathComponent( id )
.pathComponent( Paths._EXPLAIN )
.body( payload );
Expand Down

0 comments on commit 61e70eb

Please sign in to comment.