Skip to content

Commit 06a6dc8

Browse files
authored
Fix search request missing a slash when no indices are given (#471)
* Fix search request missing a slash when no indices are given Signed-off-by: Jakob Hahn <[email protected]> * opensearchapi: add test to to verify url path for search Signed-off-by: Jakob Hahn <[email protected]> --------- Signed-off-by: Jakob Hahn <[email protected]>
1 parent ed0ae19 commit 06a6dc8

File tree

3 files changed

+34
-12
lines changed

3 files changed

+34
-12
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
1818
### Removed
1919

2020
### Fixed
21+
- Fix search request missing a slash when no indices are given ([#470](https://github.com/opensearch-project/opensearch-go/pull/469))
2122

2223
### Security
2324

opensearchapi/api_search.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ func (r SearchReq) GetRequest() (*http.Request, error) {
4949
if len(r.Indices) > 0 {
5050
path = fmt.Sprintf("/%s/_search", strings.Join(r.Indices, ","))
5151
} else {
52-
path = "_search"
52+
path = "/_search"
5353
}
5454

5555
return opensearch.BuildRequest(

opensearchapi/api_search_test.go

Lines changed: 32 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
package opensearchapi_test
1010

1111
import (
12+
"fmt"
1213
"strings"
1314
"testing"
1415

@@ -73,19 +74,39 @@ func TestSearch(t *testing.T) {
7374
})
7475

7576
t.Run("request with retrieve specific fields", func(t *testing.T) {
76-
resp, err := client.Search(nil, &opensearchapi.SearchReq{Indices: []string{index}, Body: strings.NewReader(`{
77-
"query": {
78-
"match": {
79-
"foo": "bar"
80-
}
81-
},
82-
"fields": [
83-
"foo"
84-
],
85-
"_source": false
86-
}`)})
77+
resp, err := client.Search(
78+
nil,
79+
&opensearchapi.SearchReq{
80+
Indices: []string{index},
81+
Body: strings.NewReader(`{
82+
"query": {
83+
"match": {
84+
"foo": "bar"
85+
}
86+
},
87+
"fields": [
88+
"foo"
89+
],
90+
"_source": false
91+
}`),
92+
},
93+
)
8794
require.Nil(t, err)
8895
assert.NotEmpty(t, resp.Hits.Hits)
8996
assert.NotEmpty(t, resp.Hits.Hits[0].Fields)
9097
})
98+
99+
t.Run("url path", func(t *testing.T) {
100+
req := &opensearchapi.SearchReq{}
101+
httpReq, err := req.GetRequest()
102+
assert.Nil(t, err)
103+
require.NotNil(t, httpReq)
104+
assert.Equal(t, "/_search", httpReq.URL.Path)
105+
106+
req = &opensearchapi.SearchReq{Indices: []string{index}}
107+
httpReq, err = req.GetRequest()
108+
assert.Nil(t, err)
109+
require.NotNil(t, httpReq)
110+
assert.Equal(t, fmt.Sprintf("/%s/_search", index), httpReq.URL.Path)
111+
})
91112
}

0 commit comments

Comments
 (0)