diff --git a/src/Nest/Domain/Parameters/AnalyzeParams.cs b/src/Nest/Domain/Parameters/AnalyzeParams.cs index 3388c387c7f..51b45cd467c 100644 --- a/src/Nest/Domain/Parameters/AnalyzeParams.cs +++ b/src/Nest/Domain/Parameters/AnalyzeParams.cs @@ -9,6 +9,8 @@ public class AnalyzeParams { public string Index { get; set; } public string Field { get; set; } - public string Analyzer { get; set; } + public string Analyzer { get; set; } + public string Filters { get; set; } + public string Tokenizer { get; set; } } } diff --git a/src/Nest/ElasticClient-Analyze.cs b/src/Nest/ElasticClient-Analyze.cs index 006f0595003..e3356a5c38d 100644 --- a/src/Nest/ElasticClient-Analyze.cs +++ b/src/Nest/ElasticClient-Analyze.cs @@ -51,9 +51,17 @@ private AnalyzeResponse _Analyze(AnalyzeParams analyzeParams, string text) path += Uri.EscapeDataString(text); if (!analyzeParams.Field.IsNullOrEmpty()) - path += "&field=" + analyzeParams.Field; - else if (!analyzeParams.Analyzer.IsNullOrEmpty()) - path += "&analyzer=" + analyzeParams.Analyzer; + path += "&field=" + analyzeParams.Field; + else if (!analyzeParams.Analyzer.IsNullOrEmpty()) + path += "&analyzer=" + analyzeParams.Analyzer; + else + { + //Build custom analyzer out of tokenizers and filters + if (!analyzeParams.Filters.IsNullOrEmpty()) + path += "&filters=" + analyzeParams.Filters; + if (!analyzeParams.Tokenizer.IsNullOrEmpty()) + path += "&tokenizer=" + analyzeParams.Tokenizer; + } var status = this.Connection.GetSync(path); var r = this.ToParsedResponse(status);