From 8c7d5c8be5a5c468eaa36c16be03505891499cbf Mon Sep 17 00:00:00 2001 From: Max Burnette Date: Wed, 8 Mar 2023 11:33:22 -0600 Subject: [PATCH 1/3] modifications to indexing --- app/services/ElasticsearchPlugin.scala | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/app/services/ElasticsearchPlugin.scala b/app/services/ElasticsearchPlugin.scala index 25b7c8d9d..a79bde979 100644 --- a/app/services/ElasticsearchPlugin.scala +++ b/app/services/ElasticsearchPlugin.scala @@ -527,7 +527,7 @@ class ElasticsearchPlugin(application: Application) extends Plugin { case jv: JsArray => { builder.startArray(clean_k) jv.value.foreach(subv => { - builder.value(subv.toString.replace("\"","")) + builder.value(convertJsObjectToBuilder(builder, subv.asInstanceOf[JsObject])) }) builder.endArray() } @@ -599,10 +599,9 @@ class ElasticsearchPlugin(application: Application) extends Plugin { builder.startArray(k.toString.replace(".", "_")) v.value.foreach(jv => { // Try to interpret numeric value from each String if possible - parseDouble(jv.toString) match { - case Some(d) => builder.value(d) - case None => builder.value(jv) - } + builder.startObject() + convertJsObjectToBuilder(builder, jv.asInstanceOf[JsObject], true) + builder.endObject() }) builder.endArray() } From 9282ea40845266a77fe99bc9199b98a9b89e4c8d Mon Sep 17 00:00:00 2001 From: Max Burnette Date: Wed, 8 Mar 2023 13:57:44 -0600 Subject: [PATCH 2/3] remove old comment --- app/services/ElasticsearchPlugin.scala | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/services/ElasticsearchPlugin.scala b/app/services/ElasticsearchPlugin.scala index a79bde979..e6e5e6ce9 100644 --- a/app/services/ElasticsearchPlugin.scala +++ b/app/services/ElasticsearchPlugin.scala @@ -598,9 +598,8 @@ class ElasticsearchPlugin(application: Application) extends Plugin { // Elasticsearch 2 does not allow periods in field names builder.startArray(k.toString.replace(".", "_")) v.value.foreach(jv => { - // Try to interpret numeric value from each String if possible builder.startObject() - convertJsObjectToBuilder(builder, jv.asInstanceOf[JsObject], true) + convertJsObjectToBuilder(builder, jv.asInstanceOf[JsObject]) builder.endObject() }) builder.endArray() From a94046c206add695f070b26cadf95e4621731191 Mon Sep 17 00:00:00 2001 From: Max Burnette Date: Wed, 8 Mar 2023 14:02:49 -0600 Subject: [PATCH 3/3] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a201097e2..1e5e578a1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ registration or heartbeat to Clowder that will restrict use of that extractor to ## Fixed - Updated lastModifiesDate when updating file or metadata to a dataset, added lastModified to UI [386](https://github.com/clowder-framework/clowder/issues/386) - Disabled button while create dataset ajax call is still going on [#311](https://github.com/clowder-framework/clowder/issues/311) +- Fixed bug where complex JSON metadata objects using arrays were not being indexed properly for search. ## 1.21.0 - 2022-08-23