Repository: meilisearch/meilisearch-go

Issue:
[v1.14] Get documents by ID
This issue follows the changes related to Meilisearch v1.14.0 [mega issue](https://github.com/meilisearch/integration-guides/issues/315).

## Description

Update the SDK to allow retrieving documents by ID.

For more context, see the related issue in Meilisearch: https://github.com/meilisearch/meilisearch/issues/5345

## Tasks

- [ ] Create/update the method to "get documents" to allow retrieving documents by IDs

For reference, here's how this works in [Meilisearch JS SDK](https://github.com/meilisearch/meilisearch-js):

```ts
const documents = await client
  .index('index-name')
  .getDocuments({ ids: [1, 2] });
```

Discussion:

Solution patch:
diff --git a/types.go b/types.go
index 51da172..94711b2 100644
--- a/types.go
+++ b/types.go
@@ -467,6 +467,7 @@ type DocumentsQuery struct {
 	Fields          []string    `json:"fields,omitempty"`
 	Filter          interface{} `json:"filter,omitempty"`
 	RetrieveVectors bool        `json:"retrieveVectors,omitempty"`
+	Ids             []string    `json:"ids,omitempty"`
 }
 
 // SimilarDocumentQuery is query parameters of similar documents



Test patch:
diff --git a/index_document_test.go b/index_document_test.go
index 7114417..f39f0b7 100644
--- a/index_document_test.go
+++ b/index_document_test.go
@@ -7,6 +7,39 @@ import (
 	"testing"
 )
 
+func Test_GetDocumentsByIDS(t *testing.T) {
+	sv := setup(t, "")
+	t.Cleanup(cleanup(sv))
+
+	_, err := sv.CreateIndex(&IndexConfig{
+		Uid: "TestGetDocumentsByIDs",
+	})
+
+	require.NoError(t, err)
+	request := []map[string]interface{}{
+		{"ID": "1", "Name": "Pride and Prejudice 1"},
+		{"ID": "2", "Name": "Pride and Prejudice 2"},
+		{"ID": "3", "Name": "Pride and Prejudice 3"},
+	}
+	i := sv.Index("TestGetDocumentsByIDs")
+
+	ts, err := i.AddDocuments(request)
+	require.NoError(t, err)
+
+	testWaitForTask(t, i, ts)
+
+	var documents DocumentsResult
+	err = sv.Index("TestGetDocumentsByIDs").GetDocuments(&DocumentsQuery{Ids: []string{"1", "2", "3"}}, &documents)
+	require.NoError(t, err)
+
+	results := Hits{
+		{"ID": toRawMessage("1"), "Name": toRawMessage("Pride and Prejudice 1")},
+		{"ID": toRawMessage("2"), "Name": toRawMessage("Pride and Prejudice 2")},
+		{"ID": toRawMessage("3"), "Name": toRawMessage("Pride and Prejudice 3")},
+	}
+	require.Equal(t, results, documents.Results)
+}
+
 func Test_AddOrUpdateDocumentsWithContentEncoding(t *testing.T) {
 	tests := []struct {
 		Name            string