From 87ad4b1bf9907ca14c1196e3485067e15829b101 Mon Sep 17 00:00:00 2001 From: qinyouzeng Date: Thu, 15 Jun 2023 15:42:20 +0800 Subject: [PATCH 1/3] fix: fix tsc read elasticsearch mapping --- .../Extenistions/IElasticClientExtenstion.cs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Tsc.Elasticsearch/Extenistions/IElasticClientExtenstion.cs b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Tsc.Elasticsearch/Extenistions/IElasticClientExtenstion.cs index 96f334de0..c69a3dfe6 100644 --- a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Tsc.Elasticsearch/Extenistions/IElasticClientExtenstion.cs +++ b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Tsc.Elasticsearch/Extenistions/IElasticClientExtenstion.cs @@ -33,20 +33,20 @@ await client.SearchAsync(s => searchDescriptorFunc(s.Index(indexName)). } #region mapping - - /// - /// 获取mapping - /// - /// - /// - /// - /// + public static async Task> GetMappingAsync(this ICaller caller, string indexName, CancellationToken token = default) { var path = $"/{indexName}/_mapping"; var result = await caller.GetAsync(path, false, token); var json = (JsonElement)result!; - if (!json.TryGetProperty(indexName, out JsonElement root) || !root.TryGetProperty("mappings", out JsonElement mapping)) + JsonElement? root = null; + foreach (var item in json.EnumerateObject()) + { + root = item.Value; + break; + } + + if (!root.HasValue || !root.Value.TryGetProperty("mappings", out JsonElement mapping)) { return default!; } From 9a841aae7c65fad011ea6cf597a8325d972af318 Mon Sep 17 00:00:00 2001 From: qinyouzeng Date: Fri, 16 Jun 2023 09:15:45 +0800 Subject: [PATCH 2/3] chore: fix bug --- .../Extenistions/IElasticClientExtenstion.cs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Tsc.Elasticsearch/Extenistions/IElasticClientExtenstion.cs b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Tsc.Elasticsearch/Extenistions/IElasticClientExtenstion.cs index c69a3dfe6..3a57988cc 100644 --- a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Tsc.Elasticsearch/Extenistions/IElasticClientExtenstion.cs +++ b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Tsc.Elasticsearch/Extenistions/IElasticClientExtenstion.cs @@ -33,7 +33,7 @@ await client.SearchAsync(s => searchDescriptorFunc(s.Index(indexName)). } #region mapping - + public static async Task> GetMappingAsync(this ICaller caller, string indexName, CancellationToken token = default) { var path = $"/{indexName}/_mapping"; @@ -41,9 +41,11 @@ public static async Task> GetMappingAsync(this I var json = (JsonElement)result!; JsonElement? root = null; foreach (var item in json.EnumerateObject()) - { - root = item.Value; - break; + { + if (!root.HasValue) + root = item.Value; + else + break; } if (!root.HasValue || !root.Value.TryGetProperty("mappings", out JsonElement mapping)) From ea7de47db7e39e2b396f442a480e29671fde6b2c Mon Sep 17 00:00:00 2001 From: qinyouzeng Date: Fri, 16 Jun 2023 09:23:37 +0800 Subject: [PATCH 3/3] fix: update --- .../Extenistions/IElasticClientExtenstion.cs | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Tsc.Elasticsearch/Extenistions/IElasticClientExtenstion.cs b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Tsc.Elasticsearch/Extenistions/IElasticClientExtenstion.cs index 3a57988cc..9d5619586 100644 --- a/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Tsc.Elasticsearch/Extenistions/IElasticClientExtenstion.cs +++ b/src/Contrib/StackSdks/Masa.Contrib.StackSdks.Tsc.Elasticsearch/Extenistions/IElasticClientExtenstion.cs @@ -39,21 +39,20 @@ public static async Task> GetMappingAsync(this I var path = $"/{indexName}/_mapping"; var result = await caller.GetAsync(path, false, token); var json = (JsonElement)result!; - JsonElement? root = null; + JsonElement mapping = default; + bool findMapping = false; foreach (var item in json.EnumerateObject()) { - if (!root.HasValue) - root = item.Value; - else + if (!findMapping && item.Value.TryGetProperty("mappings", out mapping)) + { + findMapping = true; break; + } } - if (!root.HasValue || !root.Value.TryGetProperty("mappings", out JsonElement mapping)) - { - return default!; - } - - return GetRepProperties(mapping, default!)!; + if (findMapping) + return GetRepProperties(mapping, default!)!; + throw new UserFriendlyException($"can't find mapping for index: {indexName}"); } private static IEnumerable? GetRepProperties(JsonElement node, string? parentName = default)