From c2be3a2b294c4e62c795624570a6d325d57630fb Mon Sep 17 00:00:00 2001 From: Francois Prunayre Date: Wed, 11 Sep 2024 12:06:05 +0200 Subject: [PATCH] Search / Similar document improvement. When using more like this query in Elastic (https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-mlt-query.html) it can be sometimes useful to be able to compare the full document for better match. Configuration like: ```json { "like": [ { "_id": null } ], "analyzer": "english", "minimum_should_match": "40%" } ``` will search for ```json { "like": [ { "_id": "f48b5a47-1394-4667-81fd-b2e515593d20" }, "Copernicus EEA38 Boundary Layer with 250 m buffer (raster 20m), version 1, Nov. 2022" ], "analyzer": "english", "minimum_should_match": "40%" } ``` Add documentation about the configuration of more like this query. --- .../components/search/mdview/mdviewDirective.js | 17 ++++++++++++++++- .../main/resources/catalog/js/CatController.js | 14 ++++---------- 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/web-ui/src/main/resources/catalog/components/search/mdview/mdviewDirective.js b/web-ui/src/main/resources/catalog/components/search/mdview/mdviewDirective.js index cde15d1dfb..0aaaf09404 100644 --- a/web-ui/src/main/resources/catalog/components/search/mdview/mdviewDirective.js +++ b/web-ui/src/main/resources/catalog/components/search/mdview/mdviewDirective.js @@ -161,7 +161,22 @@ scope.size ); - query.query.bool.must[0].more_like_this.like = scope.md.resourceTitle; + function setMoreLikeThisFields(fields) { + var config = query.query.bool.must[0].more_like_this.like; + if (Array.isArray(config)) { + config.forEach(function(field) { + if (typeof field === 'object' && field._id !== undefined) { + field._id = scope.md.uuid; + } + }); + config.push(scope.md.resourceTitle); + } else { + config = scope.md.resourceTitle; + } + query.query.bool.must[0].more_like_this.like = config; + } + + setMoreLikeThisFields(); var resourceType = scope.md.resourceType ? scope.md.resourceType[0] diff --git a/web-ui/src/main/resources/catalog/js/CatController.js b/web-ui/src/main/resources/catalog/js/CatController.js index 469225ac7e..f2857800dd 100644 --- a/web-ui/src/main/resources/catalog/js/CatController.js +++ b/web-ui/src/main/resources/catalog/js/CatController.js @@ -314,17 +314,11 @@ moreLikeThisSameType: true, moreLikeThisConfig: { more_like_this: { - fields: [ - "resourceTitleObject.langeng" - // "resourceAbstractObject.default", - // "tag.raw" - ], - like: null, - min_term_freq: 1, - min_word_length: 3, - max_query_terms: 35, + like: [{ + "_id": null + }], analyzer: "english", - minimum_should_match: "70%" + minimum_should_match: "40%" } }, facetTabField: "",