From f9f5056f08218d1b9ef4a6dbac86ed2977b647b3 Mon Sep 17 00:00:00 2001 From: Mike Smith Date: Tue, 27 Aug 2024 13:10:54 +0100 Subject: [PATCH] CBB-1170: add constructor --- collapse.go | 13 ++++++++++--- collapse_test.go | 4 +--- search.go | 4 ++-- search_test.go | 2 +- 4 files changed, 14 insertions(+), 9 deletions(-) diff --git a/collapse.go b/collapse.go index f3f3286..d71f74f 100644 --- a/collapse.go +++ b/collapse.go @@ -1,13 +1,20 @@ package query -// Collapse represents the "collapse" param that can be applied to a request +// CollapseRequest represents the "collapse" param that can be applied to a request // see: https://www.elastic.co/guide/en/elasticsearch/reference/current/collapse-search-results.html -type Collapse struct { +type CollapseRequest struct { field string } +// Collapse creates a new collapse request +func Collapse(field string) *CollapseRequest { + return &CollapseRequest{ + field: field, + } +} + // Map returns a map representation of the Source object. -func (source Collapse) Map() map[string]interface{} { +func (source CollapseRequest) Map() map[string]interface{} { return map[string]interface{}{ "field": source.field, } diff --git a/collapse_test.go b/collapse_test.go index 26f4c33..8f9619a 100644 --- a/collapse_test.go +++ b/collapse_test.go @@ -10,9 +10,7 @@ func TestCollapse_Map(t *testing.T) { []mapTest{ { name: "collapse", - q: Collapse{ - field: "collapse_field", - }, + q: Collapse("collapse_field"), exp: map[string]interface{}{ "field": "collapse_field", }, diff --git a/search.go b/search.go index 0dd3b10..8bd3348 100644 --- a/search.go +++ b/search.go @@ -26,7 +26,7 @@ type SearchRequest struct { sorts Sorts source Source timeout *time.Duration - collapse *Collapse + collapse *CollapseRequest } // Search creates a new SearchRequest object, to be filled via method chaining. @@ -110,7 +110,7 @@ func (req *SearchRequest) Highlight(highlight Mappable) *SearchRequest { // Collapse sets the collapse param for the request. // See:https://www.elastic.co/guide/en/elasticsearch/reference/current/collapse-search-results.html -func (req *SearchRequest) Collapse(collapse *Collapse) *SearchRequest { +func (req *SearchRequest) Collapse(collapse *CollapseRequest) *SearchRequest { req.collapse = collapse return req } diff --git a/search_test.go b/search_test.go index e2c0bed..dab1013 100644 --- a/search_test.go +++ b/search_test.go @@ -134,7 +134,7 @@ func TestSearchMaps(t *testing.T) { }, { "a simple match_all query with a size and collapse", - Search().Query(MatchAll()).Size(20).Collapse(&Collapse{field: "collapse_field"}), + Search().Query(MatchAll()).Size(20).Collapse(&CollapseRequest{field: "collapse_field"}), map[string]interface{}{ "query": map[string]interface{}{ "match_all": map[string]interface{}{},