Repository: deepset-ai/haystack
Pull request: feat: support search_fields in DeepsetCloudDocumentStore
### Related Issues

- fixes https://github.com/deepset-ai/haystack/issues/5456

### Proposed Changes:
- add `search_fields` to `DeepsetCloudDocumentStore`

### How did you test it?
- no explicit tests needed, we only want that this param is allowed during Haystack schema validation

### Notes for the reviewer

<!-- E.g. point out section where the reviewer  -->

### Checklist

- I have read the [contributors guidelines](https://github.com/deepset-ai/haystack/blob/main/CONTRIBUTING.md) and the [code of conduct](https://github.com/deepset-ai/haystack/blob/main/code_of_conduct.txt)
- I have updated the related issue with new insights and changes
- I added unit tests and updated the docstrings
- I've used one of the [conventional commit types](https://www.conventionalcommits.org/en/v1.0.0/) for my PR title: `fix:`, `feat:`, `build:`, `chore:`, `ci:`, `docs:`, `style:`, `refactor:`, `perf:`, `test:`.
- I documented my code
- I ran [pre-commit hooks](https://github.com/deepset-ai/haystack/blob/main/CONTRIBUTING.md#installation) and fixed any issue


Problem statement:
Support `search_fields` in `DeepsetCloudDocumentStore`
**Is your feature request related to a problem? Please describe.**
For dense retrieval we can search multiple fields using `EmbeddingRetriever.embed_meta_fields`. For sparse this is possible via `search_fields` param that's offered by most document stores. `DeepsetCloudDocumentStore` is lacking of this option so far.

**Describe the solution you'd like**
Add `search_fields` param to `DeepsetCloudDocumentStore`

**Describe alternatives you've considered**
None.

**Additional context**
Add any other context or screenshots about the feature request here.

Hints from issue discussion:

Commit message: Update releasenotes/notes/deepset-cloud-document-store-search-fields-40b2322466f808a3.yaml

Patch to review:
diff --git a/haystack/document_stores/deepsetcloud.py b/haystack/document_stores/deepsetcloud.py
index 1a9dbec83e..17ce627ceb 100644
--- a/haystack/document_stores/deepsetcloud.py
+++ b/haystack/document_stores/deepsetcloud.py
@@ -47,6 +47,7 @@ def __init__(
         label_index: str = "default",
         embedding_dim: int = 768,
         use_prefiltering: bool = False,
+        search_fields: Union[str, list] = "content",
     ):
         """
         A DocumentStore facade enabling you to interact with the documents stored in deepset Cloud.
@@ -90,6 +91,7 @@ def __init__(
         :param use_prefiltering: By default, DeepsetCloudDocumentStore uses post-filtering when querying with filters.
                                  To use pre-filtering instead, set this parameter to `True`. Note that pre-filtering
                                  comes at the cost of higher latency.
+        :param search_fields: Names of fields BM25Retriever uses to find matches to the incoming query in the documents, for example: ["title", "full_text"].
         """
         self.index = index
         self.label_index = label_index
@@ -98,6 +100,7 @@ def __init__(
         self.return_embedding = return_embedding
         self.embedding_dim = embedding_dim
         self.use_prefiltering = use_prefiltering
+        self.search_fields = search_fields
         self.client = DeepsetCloud.get_index_client(
             api_key=api_key, api_endpoint=api_endpoint, workspace=workspace, index=index
         )
diff --git a/releasenotes/notes/deepset-cloud-document-store-search-fields-40b2322466f808a3.yaml b/releasenotes/notes/deepset-cloud-document-store-search-fields-40b2322466f808a3.yaml
new file mode 100644
index 0000000000..643678eb5c
--- /dev/null
+++ b/releasenotes/notes/deepset-cloud-document-store-search-fields-40b2322466f808a3.yaml
@@ -0,0 +1,4 @@
+---
+features:
+  - |
+    `DeepsetCloudDocumentStore` supports searching multiple fields in sparse queries. This enables you to search meta fields as well when using `BM25Retriever`. For example set `search_fields=["content", "title"]` to search the `title` meta field along with the document `content`. 


Code review comments:
diff_hunk: @@ -90,6 +91,7 @@ def __init__(
         :param use_prefiltering: By default, DeepsetCloudDocumentStore uses post-filtering when querying with filters.
                                  To use pre-filtering instead, set this parameter to `True`. Note that pre-filtering
                                  comes at the cost of higher latency.
+        :param search_fields: Names of fields BM25Retriever uses to find matches to the incoming query in the documents, for example: ["title", "full_text"].
path: haystack/document_stores/deepsetcloud.py
text: @author:
```suggestion
        :param search_fields: Names of fields BM25Retriever uses to find matches to the incoming query in the documents, for example: ["content", "title"].
```