Skip to content

Commit

Permalink
Add reload_search_analyzers call (#3067)
Browse files Browse the repository at this point in the history
  • Loading branch information
Philippus committed May 13, 2024
1 parent 678d76a commit 7f65354
Show file tree
Hide file tree
Showing 6 changed files with 51 additions and 2 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.sksamuel.elastic4s

import com.sksamuel.elastic4s.api.{AggregationApi, AliasesApi, AnalyzeApi, AnalyzerApi, BulkApi, CatsApi, ClearRolesCacheApi, ClusterApi, CollapseApi, CountApi, CreateIndexApi, CreateRoleApi, CreateUserApi, DeleteApi, DeleteIndexApi, DeleteRoleApi, DeleteUserApi, ExistsApi, ExplainApi, ForceMergeApi, GetApi, HighlightApi, IndexAdminApi, IndexApi, IndexRecoveryApi, IndexTemplateApi, IngestApi, KnnApi, LocksApi, MappingApi, NodesApi, NormalizerApi, PipelineAggregationApi, PitApi, QueryApi, ReindexApi, RoleApi, ScoreApi, ScriptApi, ScrollApi, SearchApi, SearchTemplateApi, SettingsApi, SnapshotApi, SortApi, StoredScriptApi, SuggestionApi, TaskApi, TermVectorApi, TokenFilterApi, TokenizerApi, TypesApi, UpdateApi, UserAdminApi, UserApi, ValidateApi}

import com.sksamuel.elastic4s.api.{AggregationApi, AliasesApi, AnalyzeApi, AnalyzerApi, BulkApi, CatsApi, ClearRolesCacheApi, ClusterApi, CollapseApi, CountApi, CreateIndexApi, CreateRoleApi, CreateUserApi, DeleteApi, DeleteIndexApi, DeleteRoleApi, DeleteUserApi, ExistsApi, ExplainApi, ForceMergeApi, GetApi, HighlightApi, IndexAdminApi, IndexApi, IndexRecoveryApi, IndexTemplateApi, IngestApi, KnnApi, LocksApi, MappingApi, NodesApi, NormalizerApi, PipelineAggregationApi, PitApi, QueryApi, ReindexApi, ReloadSearchAnalyzersApi, RoleApi, ScoreApi, ScriptApi, ScrollApi, SearchApi, SearchTemplateApi, SettingsApi, SnapshotApi, SortApi, StoredScriptApi, SuggestionApi, TaskApi, TermVectorApi, TokenFilterApi, TokenizerApi, TypesApi, UpdateApi, UserAdminApi, UserApi, ValidateApi}
import scala.concurrent.duration._
import scala.concurrent.{Await, Future}

Expand Down Expand Up @@ -41,6 +40,7 @@ trait ElasticApi
with QueryApi
with PipelineAggregationApi
with ReindexApi
with ReloadSearchAnalyzersApi
with RoleApi
with ScriptApi
with ScoreApi
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import com.sksamuel.elastic4s.handlers.locks.LocksHandlers
import com.sksamuel.elastic4s.handlers.nodes.NodesHandlers
import com.sksamuel.elastic4s.handlers.pit.PitHandlers
import com.sksamuel.elastic4s.handlers.reindex.ReindexHandlers
import com.sksamuel.elastic4s.handlers.reloadsearchanalyzers.ReloadSearchAnalyzersHandlers
import com.sksamuel.elastic4s.handlers.script.StoredScriptHandlers
import com.sksamuel.elastic4s.handlers.security.roles.{RoleAdminHandlers, RoleHandlers}
import com.sksamuel.elastic4s.handlers.security.users.{UserAdminHandlers, UserHandlers}
Expand Down Expand Up @@ -51,6 +52,7 @@ with LocksHandlers
with MappingHandlers
with NodesHandlers
with ReindexHandlers
with ReloadSearchAnalyzersHandlers
with RoleAdminHandlers
with RoleHandlers
with RolloverHandlers
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package com.sksamuel.elastic4s.api

import com.sksamuel.elastic4s.Indexes
import com.sksamuel.elastic4s.requests.reloadsearchanalyzers.ReloadSearchAnalyzersRequest

trait ReloadSearchAnalyzersApi {
def reloadSearchAnalyzers(index: String): ReloadSearchAnalyzersRequest = ReloadSearchAnalyzersRequest(Indexes(index))
def reloadSearchAnalyzers(indexes: Indexes): ReloadSearchAnalyzersRequest = ReloadSearchAnalyzersRequest(indexes)
def reloadSearchAnalyzers(indexes: Seq[String]): ReloadSearchAnalyzersRequest = ReloadSearchAnalyzersRequest(Indexes(indexes))
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package com.sksamuel.elastic4s.requests.reloadsearchanalyzers

import com.sksamuel.elastic4s.Indexes

case class ReloadSearchAnalyzersRequest(indexes: Indexes) extends Serializable
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package com.sksamuel.elastic4s.requests.reloadsearchanalyzers

import com.fasterxml.jackson.annotation.JsonProperty
import com.sksamuel.elastic4s.requests.common.Shards

case class ReloadDetails(index: String, @JsonProperty("reloaded_analyzers") reloadedAnalyzers: Seq[String], @JsonProperty("reloaded_node_ids") reloadedNodeIds: Seq[String])

case class ReloadSearchAnalyzersResponse(@JsonProperty("reload_details") reloadDetails: Seq[ReloadDetails],
@JsonProperty("_shards") shards: Option[Shards])
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package com.sksamuel.elastic4s.handlers.reloadsearchanalyzers

import com.sksamuel.elastic4s.requests.reloadsearchanalyzers._
import com.sksamuel.elastic4s.{ElasticRequest, Handler, HttpResponse, ResponseHandler}

trait ReloadSearchAnalyzersHandlers {
implicit object ReloadSearchAnalyzersHandler extends Handler[ReloadSearchAnalyzersRequest, ReloadSearchAnalyzersResponse] {

override def responseHandler: ResponseHandler[ReloadSearchAnalyzersResponse] = new ResponseHandler[ReloadSearchAnalyzersResponse] {
override def handle(response: HttpResponse): Right[Nothing, ReloadSearchAnalyzersResponse] =
response.statusCode match {
case 404 | 200 => Right(ResponseHandler.fromResponse[ReloadSearchAnalyzersResponse](response))
case _ => sys.error("Invalid response")
}
}

override def build(request: ReloadSearchAnalyzersRequest): ElasticRequest = {
val endpoint = s"/${request.indexes.string(true)}/_reload_search_analyzers"

ElasticRequest("POST", endpoint)
}
}
}

0 comments on commit 7f65354

Please sign in to comment.